vue3 ts开发,

  vue3 ts开发,

  本文主要介绍从零开始构建vite vue3 ts规范的基本项目。这个项目已经用vite开始了,按照vite官方的顺序开始吧。和对vite vue3 ts项目的搭建过程感兴趣的朋友一起看看吧。

  

目录

  项目初始安装路由器和pinia安装ESlinteslint vue规则需要切换安装更漂亮的安装stylelint安装husky安装commitlint总结参考:最近比较闲,准备着手为下一个新项目搭建基础模板。在建造的过程中有许多问题。现在我总结一下给你用。

  

项目初始化

  这个项目已经被vite启动了,所以是按照vite官方的顺序启动的。使用此处的命令行构建基本项目:

  yarn创建vite my-vue-app - template vue

  执行后的项目结构如下:

  然后我们开始装东西(腥风血雨要开始了!)。

  

安装router和pinia

  安装这两个的过程比较简单。基本上按照官方文件就可以了。接下来,执行命令:

  纱线添加vue-路由器@4

  使用以下代码在根目录中创建一个新的路由器文件夹和一个新的index.ts文件:

  从“vue-router”导入{ createRouter,createWebHashHistory,RouteRecordRaw}

  从“@/components/HelloWorld.vue”导入HelloWorld

  const routes:ArrayRouteRecordRaw=[

  {

  路径:“/”,

  名称:“HelloWorld”,

  组件:HelloWorld

  }

  ]

  const router=createRouter({

  history: createWebHashHistory(),

  路线

  })

  导出默认路由器

  这需要在main.ts文件中引入。

  从“vue”导入{ createApp }

  从导入路由器。/路由器

  从导入应用程序。/App.vue

  createApp(应用程序)。使用(路由器)。挂载(#app)

  此时,当您执行代码时,您会发现控制台报告一个错误,如下所示:

  这是因为vite无法识别@这个其实和webpack一样的配置。只是重定向它。打开vite.config.ts并添加以下内容:

  从“vite”导入{ defineConfig }

  从“路径”导入路径

  从 @vitejs/plugin-vue 导入vue

  //https://vitejs.dev/config/

  导出默认定义配置({

  插件:[vue()],

  解决:{

  别名:[

  {

  查找:“@”,

  替换:path.resolve(__dirname, src ),

  },

  ],

  },

  })

  这个时候还是不行,因为不能识别路径,需要安装@types/node。

  纱线添加@类型/节点-D

  同时需要在tsconfig.node.json中添加compilerOptions.allowSyntheticDefaultImports: true,如下:

  编译器选项:{

  allowSyntheticDefaultImports:true

  }

  这将解决之前的错误。接下来是pinia的安装:

  纱线添加针

  Pinia可以说是vuex现在的潮流,一定要尝尝。将store和index.ts文件添加到文件中。

  从“pinia”导入{ defineStore }

  const use store=defineStore( main ,{

  状态:()={

  返回{

  计数器:0,

  名称:“无线电mM”

  }

  },

  动作:{

  重置(){

  这个。$reset()

  }

  }

  })

  导出默认用户存储

  里面的语法我大致用过,非常好用。这里只展示最简单的例子。就在main.ts再介绍一遍

  从“vue”导入{ createApp }

  从导入路由器。/路由器

  从“Pinia”导入{ createPinia}

  从导入应用程序。/App.vue

  createApp(应用程序)。使用(createPinia())。使用(路由器)。挂载(#app)

  

安装ESlint

  可以说安装eslint是一件比较麻烦的事情。看了很多文章,参考了别人文章的配置,但途中还是踩了不少坑。有了插件只知道怎么装,不知道要解决什么问题。所以这次我的展示比较长,目的是介绍每个插件的用途。走吧。运行命令:

  npx eslint -初始化

  按照以下步骤完成基本eslint配置:

  选择ESlint用途

  什么模块引入方式

  什么框架使用eslint

  是否使用typescript

  运用环境选择

  选择流行规则

  选择Airbnb规则

  用什么类型文件做载体

  是否开始安装

  用什么工具安装

  完成上述步骤后,您可以看到一个eslintrc.js文件已经添加到项目中,但这只是开始。接下来我们来看看各种坑。

  

eslint的vue规则需要切换

  错误报告如下。您可以在app.vue中看到它,这表明需要一个根元素。其实vue3已经不需要写根元素了。

  此时,您需要修改eslintrc.js文件,如下所示:

  模块.导出={

  环境:{

  浏览器:没错,

  es2021:对,

   vue/setup-compiler-macros :true,//这是为了与API(如defineProps)兼容

  },

  扩展:[

  -插件:vue/基本,

  插件:vue/vue3-推荐,//与vu E3语法规范兼容

  airbnb-base ,

  ],

  解析器: vue-eslint-parser //这个插件实际上是用来解析模板语法的。

  语法分析选项:{

  ecmaVersion:“最新”,

  解析器:“@typescript-eslint/parser”,

  sourceType:“模块”,

  },

  插件:[

  vue ,

  @typescript-eslint ,

  ],

  规则:{

  },

  };

  这时候再看其他文件,就会出现换行式的错误。这是因为eslint是unit的默认,也就是lr行的结尾。现在,您可以直接在eslintrc.js文件中添加新规则:

  linebreak-style:[error , windows]

  注意,如果加了之后没有效果,需要重启vscode才能有效果,实际上很多新加的东西都需要重启才能有效果。此时整个项目没有错误,然后进行下一步。

  

安装prettier

  单纯安装eslint只会提示你代码格式错误,不会帮你自动修改。这个时候你就需要这个更漂亮的来实现这个功能。执行以下命令:

  纱线添加eslint-plugin-beauty eslint-config-beauty-D

  此时,需要再次修改eslintrc.js文件,如下所示:

  模块.导出={

  环境:{

  浏览器:没错,

  es2021:对,

  },

  扩展:[

  插件:vue/vue 3-推荐,

  airbnb-base ,

  插件:更漂亮/推荐,

  ],

  语法分析选项:{

  ecmaVersion:“最新”,

  解析器:“@typescript-eslint/parser”,

  sourceType:“模块”,

  },

  插件:[

  vue ,

  @typescript-eslint ,

  ],

  规则:{

  更漂亮/更漂亮:错误,

  linebreak-style:[erro , window]

  },

  };

  下面是对这些插件的解释:ESLint-plugin-pretier。这个插件主要是禁用一些不必要的与pretier冲突的eslint规则。当lint-config-pretier不符合pretier规则时,它会报告一个错误,可以通过eslint - fix命令来修复这个错误。

  同时,您需要添加prettierrc.js文件并编写以下内容:

  模块.导出={

  PrintWidth: 80,//每行代码的长度(默认为80)

  TabWidth: 2,//每个制表符相当于多少个空格(默认为2)

  UseTabs: false,//是否用tab缩进(默认为false)

  SingleQuote: true,//使用单引号(默认为false)

  Semi: false,//在声明的末尾使用分号(默认为true)

  Trailcomma: es5 ,//对多行使用尾随逗号(默认为无)

  BracketSpacing: true,//在对象的文字量的大括号之间使用空格(默认为true)

  布雷克萨梅林:错,

  ArrowParens: avoid ,//只有一个参数的arrow函数的参数是否用括号括起来(默认为avoid)

  Endfline: crlf ,//添加该属性时,可以删除eslint中的linebreak-style。

  }

  然后我们可以向package.json添加一个新命令:

  脚本:{

  lint:script: eslint - ext。js,jsx,ts,tsx - fix -安静。/,

  }

  然后就可以运行命令,感受两大巨头的加持(没有代码,完全没有感觉):

  纱线纤维:脚本

  当然,这只能在运行命令时修复。我们想要的是代码在保存的时候可以自动格式化。此时,我们需要在vscode的setttings.json文件中添加以下内容:

  [vue]: {

  editor . default formatter : es benp . prettle-vs code ,

  editor.codeActionsOnSave: {

   source.fixAll.eslint: true,

  },

  },

  同时,需要为您的vscode安装两个插件,如下所示:

  这时候保存的时候就可以格式化代码了。当然,我们也可以让这些错误格式在运行项目时报告错误。安装插件

  yarn add vite-plugin-eslint -D

  然后在vite.config.ts文件中添加:

  从“vite-plugin-eslint”导入viteEslint

  //具体配置

  {

  插件:[

  //省略其他插件

  viteEslint(),

  ]

  }

  现在你可以试着重新启动项目,ESLint的错误已经能够及时显示到命令行窗口中了。

  -补充- 在你运行纱线纤维:脚本命令的时候,会出现下面的错误:

  这里需要一个个问题慢慢解决,首先是导入/扩展问题,主要是爱彼迎规范中的配置是跟我们某视频剪辑软件项目不一样的,所以在埃斯林特规则中需要加入下面:

  导入/扩展:[

  错误,

  忽略重新打包,

  {

  js:“从来没有",

  jsx:"从不",

  ts:"从不",

  tsx:"从不",

  },

  ],

  而解决依赖位置报错问题导入/无无关依赖项,其实他这个报错是错误的,但是同样解决,同样是新增规则:

  import/no-externally-dependencies :[ error ,{ devDependencies: true }],

  接下来是比较麻烦的导入/否-未解决,这个参考的国外友人的配置解决的。

  首先需要安装插件:

  yarn add-D eslint-import-resolver-type脚本

  接下来需要在。eslintrc.js文件中添加如下(和rules同级):

  设置:{

  导入/解析器:

  类型脚本:{},//这会将rootdir/tsconfig.json加载到埃斯林特

  },

  },

  关于这个配置其实还有射流研究…版本的解决办法,可以参考这个网站最后展示。eslintrc.js文件

  模块。导出={

  环境:{

  浏览器:没错,

  es2021:对,

  vue/设置-编译器-宏:真的,

  },

  扩展:[

  插件:vue/vue 3-推荐,

  airbnb-base ,

  插件:更漂亮/推荐,

  ],

  解析器: vue-eslint-parser ,

  语法分析选项:{

  ecmaVersion:"最新",

  解析器:" @typescript-eslint/parser ",

  源类型:"模块",

  },

  插件:[vue , @typescript-eslint],

  规则:{

  更漂亮/更漂亮:错误,

  linebreak-style: [error , windows],

  导入/扩展:[

  错误,

  忽略重新打包,

  {

  js:“从来没有",

  jsx:"从不",

  ts:"从不",

  tsx:"从不",

  },

  ],

  import/no-externally-dependencies :[ error ,{ devDependencies: true }],

  },

  设置:{

  导入/解析器:

  类型脚本:{},//这会将rootdir/tsconfig.json加载到埃斯林特

  },

  },

  }

  

安装stylelint

  这个就是样式的格式化插件,不废话直接安装:

  纱线添加样式线头样式棉绒-更漂亮样式lint-配置-更漂亮样式棉绒-配置-凹槽-订单样式lint-配置-标准样式lint-配置-标准-scss样式lint-config-推荐-vue -D

  同样的需要新建。stylelintrc.js文件,写入以下内容:

  模块。导出={

  //注册stylelint的较美丽插件

  插件:[ stylelint-beauty ],

  //继承一系列规则集合

  扩展:[

  //标准规则集合

   stylelint-config-standard ,

  //标准规则集合的半导体色敏传感器版本

   stylelint-config-standard-scss ,

  //样式属性顺序规则

   stylelint-config-recess-order ,

  //接入较美丽规则

   stylelint-config-appeller ,

  样式棉绒-更漂亮/推荐,

   stylelint-config-recommended-vue

  ],

  //配置规则

  规则:{

  //开启较美丽自动格式化功能

  更漂亮/更漂亮:没错,

  //"非空源":空//样式不能是空

  }

  };

  再次同样的,需要在设置。数据文件中添加配置,目标同样是为了保存文件自动格式化。

  [vue]: {

  编辑。默认格式化程序“:”是benp。漂亮-对比代码,

  editor.codeActionsOnSave: {

   source.fixAll.eslint: true,

  “真的”

  },

  },

  stylelint.validate: [css , less , scss , vue],

  这时候可以在package.json文件添加命令:

  脚本:{

  lint:style : style lint-fix \ src/* */* .{css,scss}\

  }

  其实跟上面的埃斯林特的命令差不多。当然,同样有运行时报错的插件,如下:

  yarn add @ Amat lash/vite-plugin-stylelint-D

  然后在轻快地配置文件中添加如下的内容:

  从“@ Amat lash/vite-plugin-stylelint”导入viteStylelint

  {插件:

  [

  //省略其他插件

  viteStylelint({

  //排除对某些文件的检查

  exclude: /node_modules/}),

  ]

  }

  显示最终文档的内容:

  从“vite”导入{ defineConfig }

  从“路径”导入路径

  从 @vitejs/plugin-vue 导入vue

  从“vite-plugin-eslint”导入viteEslint

  从“@ Amat lash/vite-plugin-stylelint”导入viteStylelint

  导出默认定义配置({

  插件:[

  vue(),

  viteEslint(),

  viteStylelint({

  //排除对某些文件的检查

  排除:/node_modules/,

  }),

  ],

  解决:{

  别名:[

  {

  查找:“@”,

  替换:path.resolve(__dirname, src ),

  },

  ],

  },

  })

  同样,您可以在vscode中安装以下插件。

  

安装husky

  这个安装主要是针对卡点的。在提交信息时,将检查代码格式,以确保统一的在线代码规范。执行以下命令:

  纱线添加husky -D

  立即初始化huskynpx husky安装,以husky作为项目开始前的步骤,如下:{

  脚本:{

  //将在安装npm依赖项后自动执行

  后安装: husky安装

  }

  }

  添加Husky hook并在终端执行以下命令:npx Husky add.husky/pre-commit NPM-run-lint

  注意window系统下双引号内容需要连接符,mac系统则不需要,那么您将在。项目根目录的husky目录,包含git提交前要执行的脚本。现在,当您执行git commit时,您将首先执行npm run lint脚本,然后您将在通过lint检查后正式提交代码记录。但是会出现这样的情况,就是我只修改了一个文件,这个检查还是全检,所以这个时候就需要另外一个工具了。Lint-staged用于解决上述的全尺度扫描问题,它只能检查Lint存放在临时存储区的文件,大大提高了代码提交的效率。

  纱线添加-D皮棉-分级

  然后在package.json中添加以下配置:

  lint-staged :

  **/*.{js,jsx,tsx,ts}: [

  npm运行lint:脚本,

   git添加

  ],

  **/*.scss: [

  npm运行lint:style ,

   git添加

  ]

  }

  接下来,我们需要在Husky中应用lint-stage,回到。husky/预提交脚本,并用以下脚本替换原始npm运行lint:

  npx -无绒布-暂存

  这样,我们实现了代码提交时的增量Lint检查。

  

安装commitlint

  不知道你有没有碰到过。当你在一个团队中工作,当你的同事提交代码时,只使用“提交”这个词来提交信息!不知道他改了什么功能或者新需求,或者改了什么bug!这时候就要规范提交资料了!

  yarn add commit link @ commit link/CLI @ commit link/config-conventi on-D

  接下来,创建一个新的commitlintrc.js:

  module . exports={ extends:[ @ commit link/config-conventi on ]};

  这个插件提交的规范主要由两部分组成,即类型和主题。的常见类型值包括:

  专长:增加新功能。修复:修复Bug。杂务:一些不影响功能的变化。单据:特指对单据的修改。Perf:性能优化。重构:代码重构。测试:添加一些测试代码等等。接下来,我们将把commitlint的功能集成到Husky的hook中,并在终端执行以下命令:

  npx哈士奇补充。HUSKY/commit-msg npx-no-install commit link-eHUSKY _ GIT _ PARAMS

  然后我们就可以完成提交信息的规范。当提交的信息不符合规范时,提交的操作将被终止并提示错误。到目前为止,我们已经完成了这个从零开始的建设项目。

  

总结

  这个构建过程中没有安装css处理插件,但是在vite中安装sass和less相对简单。比如sass可以直接跑纱加sass (本文其实很多插件都是以sass为模板安装的),所以这次我踩了这里的坑。我期待着下一次旅行。仓库地址

  

参考:

  《深入浅出vite》

  从0开始,我将带你携手共建一套标准化的Vue3.x项目工程环境。

  这就是这篇关于从头开始构建vite vue3 ts规范的基本项目的文章。有关构建vite vue3 ts项目的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: