vite+vue3+scss+ts项目搭建

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了,搭建完成

对于使用 Vite + Vue3 + TypeScript + Pinia + Vue Router + Axios + SCSS 并自动导入 API 的设置,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了 Node.js,并且版本大于等于 12.0.0。 2. 创建一个新的 Vue 项目,可以使用 Vue CLI 或者手动创建一个空文件夹。 3. 在项目根目录下,打开终端并执行以下命令安装 Vite: ```bash npm init vite@latest ``` 按照提示选择你的项目配置,包括选择 Vue 3、TypeScript 和其他选项。 4. 进入项目目录并安装依赖: ```bash cd your-project-name npm install ``` 5. 安装 Pinia 插件: ```bash npm install pinia ``` 6. 创建一个 `src/store` 目录,并在其中创建 `index.ts` 文件,用于定义和导出你的 Pinia store。 ```typescript // src/store/index.ts import { createPinia } from 'pinia' export const store = createPinia() // 可以在这里定义你的 store 模块 ``` 7. 在项目根目录下创建 `src/api` 目录,用于存放 API 请求相关的文件。 8. 在 `src/api` 目录下创建一个 `index.ts` 文件,用于自动导入所有 API 文件。 ```typescript // src/api/index.ts const modules = import.meta.globEager('./*.ts') const apis: any = {} for (const path in modules) { if (path !== './index.ts') { const moduleName = path.replace(/^.\/|\.ts$/g, '') apis[moduleName] = modules[path].default } } export default apis ``` 这样,你就可以在 `src/api` 目录下创建各种 API 请求的文件,例如 `user.ts`: ```typescript // src/api/user.ts import axios from 'axios' export function getUser(id: number) { return axios.get(`/api/user/${id}`) } ``` 然后,在你的组件中使用自动导入的 API: ```typescript import { defineComponent, ref } from 'vue' import { useUserStore } from '@/store' import apis from '@/api' export default defineComponent({ setup() { const userStore = useUserStore() const userId = ref(1) const fetchUser = async () => { const response = await apis.user.getUser(userId.value) userStore.setUser(response.data) } return { userId, fetchUser, } }, }) ``` 以上就是使用 Vite + Vue3 + TypeScript + Pinia + Vue Router + Axios + SCSS 并自动导入 API 的基本设置。你可以根据自己的需求进一步配置和扩展。希望对你有所帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值