vue3出来快一年了,新项目需要使用vue3,现在就记录一下搭建过程和一些坑
本来用webpack已经搭建好了
!和以前差不多
但是想了一下,现在不都推荐vite,决定就用vite了,首先用了一下网上的命令

npm i -g create-vite-app
create-vite-app vue3vite
cd vue3vite
npm i
npm run dev

真的是超级快,秒搭建好了
在这里插入图片描述
但是这里就有问题了,比vue-cli脚手架搭建的项目少了好多东西,这意味着ts、router、scss等等都需要自己再重新装,于是我去了官网https://vitejs.cn/,发现官网的命令不一样,于是我又重新来了一遍

npm init @vitejs/app my-vue-app --template vue
cd my-vue-app
npm install
npm run dev

在这里插入图片描述
居然又不一样,这里多了个文件vite.config.js,我估计类似于以前的vue.config.js,还是使用官方方法好了,现在就只有查一下怎么能变成vue-cli搭建的那样了
在这里插入图片描述
启动居然network没了,原来是安装的vite版本问题

在这里插入图片描述
在这里插入图片描述
1.0.0-rc.13这个版本启动就会有network,于是我把vite版本改了直接npm i
在这里插入图片描述
直接报错,原来版本不一样,vite.config.js里使用的方法已经没了,需要删除vite.config.js,删除后就好了
在这里插入图片描述
官方方法还会出现这个,所以这两种方法搭建的项目,vite版本不能改变,2.3.8应该是新版本,所以还是用第一种方法好了
首先安装ts

npm i typescript

然后初始化tsconfig.json

npx tsc --init

安装vue-router

npm i vue-router

安装vuex

npm i vuex

把main.js改成main.ts,然后报错了,查度娘,原来还要.d.ts文件,于是我直接把webpack那个直接复制过来,这是一个和mian.ts同级,名为shims-vue.d.ts,主要是用于识别vue文件,里面长这样

/* eslint-disable */
declare module '*.vue' {
  import type { DefineComponent } from 'vue'
  const component: DefineComponent<{}, {}, any>
  export default component
}

src下再创建router文件夹,创建文件index.ts,内容

import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'

const routes: Array<RouteRecordRaw> = []

const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

创建store文件夹,创建文件index.ts,这里就先不写了内容了
然后main.ts引入

import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import router from './router'
import vuex from './store'

const app = createApp(App);
app.use(router);
app.use(vuex);
createApp(App).mount('#app')

开始我是import router from './router/index.ts’这样引入的,结果报错,又是看了webpack搭建那个才知道,直接引入,或者我看网上不加.ts也可以
这时我发现vue文件script部分报警告,原来还要在script标签上加上lang=‘ts’
终于只剩最后一步了,安装scss

npm i sass
npm i sass-loader
npm i node-sass

在这里插入图片描述
又报错,原来没有加–save-dev,删除重来

npm i sass --save-dev
npm i sass-loader --save-dev
npm i node-sass --save-dev

在这里插入图片描述
启动成功,没报错了,可以使用路由和scss了,搭建完成

Logo

前往低代码交流专区

更多推荐