Vite+TS搭建项目

1.搭建vite项目

1.安装vite
npm i -g create-vite-app
2.创建vite项目
create-vite-app vue3-demo
3.安装依赖
npm install
4.运行项目
npm run dev

2.配置TS环境

使用vite搭建好的项目是没有使用typescript的,所以我们要去安装typescript并修改代码,以保证我们后续可以使用typescript

  • 1.安装TS
    npm install typescript
  • 2.在项目的根目录创建文件:tsconfig.json
// 指定了用来编译这个项目的根文件和编译选项
{
    "compilerOptions": {
        "target": "esnext",
        "module": "esnext",
        "strict": true, //这样可以对`this`上的数据属性进行严格的推断,否则总是被视为any类型
        "jsx": "preserve",
        "moduleResolution": "node"
    },
    "include": [
        "src/**/*", "src/main.d.ts" //**/递归匹配任意子目录
    ],
    "exclude": [
        "node_modules"
    ]
}
  • 3.在项目根目录下新建vite.config.ts
// vite.config.ts
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default {
plugins: [
// …
AutoImport({
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver()],
}),
],
}

  • 3.修改src/main.js为src/main.ts;
    在这里插入图片描述
  • 4.修改根目录下index.html中引入的main.js为main.ts
    在这里插入图片描述
  • 5.修改项目的入口文件为main.ts,在项目根目录创建文件vue.config.js:
module.exports = {
    pages: {
        index: {
            entry: 'src/main.ts'
        }
    }
};

注意:经过以上步骤之后,会发现项目还是可以正常启动的,但是在main.ts中会发现有一个报错:
此时是因为使用ts的时候引入.vue文件的时候会报错,找不到相应的模块,是因为ts只认识以.ts结尾的文件,并不认识.vue结尾的文件,以此要在项目的/src文件下创建一个name.d.ts文件来定义一下.vue文件:
在这里插入图片描述

  • 6.src/vue.d.ts
// 在没用用到需要具体定义的内容的时候,可以只声明一下'*.vue'就可以
// declare module '*.vue' {
//     import Vue from 'vue'
//     export default Vue
// }
declare module '*.vue' {
    import { App, defineComponent } from 'vue'
    const component: ReturnType<typeof defineComponent> & {
        install(app: App): void
    }
    export default component
}

 
 
// shims-vue.d.ts
import Vue from 'vue'

declare module ‘vue/types/vue’ {
interface Vue {
// 以下是在main.ts中挂载到Vue.prototype上的变量
$api: any;
$mock: any;
$configs: any;
}
}

3.安装ESlint

npm install eslint elsint-plugin-vue -D
安装好之后在项目根目录下添加vue.eslintrc.js文件:

module.exports = {
    root: true,
    env: {
        'browser': true,
        'es2021': true,
        'node': true
    },
    extends: [
        'plugin:vue/vue3-essential'
    ],
    parserOptions: {
        'parser': '@typescript-eslint/parser'
    },
    plugins: [
        'vue',
        '@typescript-eslint'
    ],
    rules: {
      // 规则可以根据自己项目需求配置
      // 各个规则配置含义参考http://eslint.cn/docs/rules/
        'array-bracket-spacing': ['error', 'never'], // 数组紧贴括号部分不允许包含空格
        'object-curly-spacing': ['error', 'never'], // 对象紧贴花括号部分不允许包含空格
        'block-spacing': ['error', 'never'], // 单行代码块中紧贴括号部分不允许包含空格
        'no-multiple-empty-lines': 'error', // 不允许多个空行
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值