当前位置:   article > 正文

vite 创建vue3项目 (vue-router、vuex、scss、环境变量、selint、stylelint、normalize.css)_stylelint降级

stylelint降级

目录

一. 创建基础vue项目

二. 安装vue-router

三. 设置路径别名 @

四. vuex

五. SCSS

六. 环境变量

七. eslint 

八. stylelint

九. normalize.css


一. 创建基础vue项目

npm create vite@latest

输入项目名称

选择 vue -> vue-ts

进入目录 运行 npm run install 与 npm run dev 便可运行

env.d.ts中加入

  1. declare module '*.vue' {
  2. import type { DefineComponent } from 'vue'
  3. const component: DefineComponent<{}, {}, any>
  4. export default component
  5. }

二. 安装vue-router

npm install vue-router -S

src下新建 router/index.ts

  1. import {createRouter, createWebHashHistory, RouteRecordRaw} from 'vue-router';
  2. const routes:Array<RouteRecordRaw> = [
  3. {
  4. path: '/',
  5. name: 'Index',
  6. component: () => import("../views/index.vue")
  7. },
  8. {
  9. path: '/list',
  10. name: 'List',
  11. component: () => import("../views/list.vue")
  12. },
  13. ];
  14. const router = createRouter({
  15. history: createWebHashHistory(),
  16. routes
  17. });
  18. export default router;

在 main.ts 中引入router

  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router/index'
  4. const app = createApp(App)
  5. app.use(router)
  6. app.mount('#app')

app.vue 中添加 router-view

  1. <template>
  2. <router-view />
  3. </template>

三. 设置路径别名 @

安装 @types/node

npm i --save-dev @types/node

修改 vite.config.ts

  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import path from 'path' // 此处
  4. // https://vitejs.dev/config/
  5. export default defineConfig({
  6. plugins: [vue()],
  7. resolve: { // 此处
  8. alias: {
  9. '@': path.resolve(__dirname, "src")
  10. }
  11. }
  12. })

修改 tsconfig.json   compilerOptions 下新增 baseUrl paths

  1. {
  2. "compilerOptions": {
  3. // ...
  4. "baseUrl": ".",
  5. "paths": {
  6. "@/*": [
  7. "src/*"
  8. ]
  9. }
  10. // ...
  11. },
  12. }

设置好后 在router.js 中便可使用@引入 .vue

四. vuex

安装

npm install vuex@next --save

env.d.ts 中加入声明 

  1. declare module "vuex" {
  2. export * from "vuex/types/index.d.ts";
  3. export * from "vuex/types/helpers.d.ts";
  4. export * from "vuex/types/logger.d.ts";
  5. export * from "vuex/types/vue.d.ts";
  6. }

src 新建 store/index.ts

  1. import { createStore } from 'vuex'
  2. interface Data {
  3. a: Number,
  4. b: String
  5. }
  6. export interface State {
  7. data: Data
  8. }
  9. const state: State = {
  10. data: {
  11. a: 1,
  12. b: '1',
  13. }
  14. }
  15. // 创建一个新的 store 实例
  16. const store = createStore({
  17. state: state
  18. })
  19. export default store

main.js 中引入

  1. import { createApp } from 'vue'
  2. import App from './App.vue'
  3. import router from './router/index'
  4. import store from './store/index'
  5. const app = createApp(App)
  6. app.use(router)
  7. app.use(store)
  8. app.mount('#app')

.vue中使用

  1. <script setup lang="ts">
  2. import { ref } from 'vue'
  3. import { useStore } from 'vuex'
  4. const store = useStore()
  5. const a = store.state.data.a
  6. const count = ref(0)
  7. </script>
  8. <template>
  9. <div>
  10. index {{ a }}
  11. </div>
  12. </template>
  13. <style scoped>
  14. </style>

五. SCSS

安装

npm install --save-dev sass

使用

  1. <style scoped lang="scss">
  2. $color: red;
  3. .div {
  4. span {
  5. color: $color;
  6. }
  7. }
  8. </style>

六. 环境变量

根目录下创建 .env.development 与 .env.production

文件中配置环境比变量(需要用 VITE 开头)

  1. # 开发环境
  2. VITE_VUE_APP_BASE_API = '/'

代码中使用

console.log('import', import.meta.env)

七. eslint 

安装 vite-plugin-eslint

npm install vite-plugin-eslint 

vite.config.js 中添加

  1. import eslintPlugin from 'vite-plugin-eslint'
  2. // https://vitejs.dev/config/
  3. export default defineConfig({
  4. plugins: [
  5. // ...
  6. eslintPlugin({
  7. cache: false // 禁用 eslint 缓存
  8. })
  9. ]
  10. })

安装 eslint 相关包

npm install eslint eslint-plugin-vue @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/eslint-config-typescript -D

根目录下新建 .eslintrc.js  并根据npm安装的包配置

(package.json中有 "type": "module" 需要将.js改为.cjs)

  1. // 包支持
  2. // eslint
  3. // eslint-plugin-vue
  4. // @typescript-eslint/eslint-plugin
  5. // @typescript-eslint/parser
  6. // @vue/eslint-config-typescript
  7. module.exports = {
  8. root: true,
  9. env: {
  10. node: true
  11. },
  12. extends: [
  13. 'plugin:vue/vue3-recommended', // eslint-plugin-vue
  14. 'plugin:vue/vue3-essential',
  15. 'eslint:recommended',
  16. '@vue/typescript/recommended'
  17. ],
  18. parserOptions: {
  19. ecmaVersion: 2020
  20. },
  21. rules: {
  22. 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
  23. 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
  24. '@typescript-eslint/no-var-req/uires': 'off', // 可以require
  25. '@typescript-eslint/no-explicit-any': 'off', // 允许any
  26. '@typescript-eslint/explicit-module-boundary-types': 'off',
  27. '@typescript-eslint/no-var-requires': 'off',
  28. indent: [1, 2], // 缩进
  29. // ...其他配置太多省略
  30. },
  31. overrides: [
  32. {
  33. files: ['**/__tests__/*.{j,t}s?(x)', '**/tests/unit/**/*.spec.{j,t}s?(x)'],
  34. env: {
  35. mocha: true
  36. }
  37. }
  38. ]
  39. }

八. stylelint

npm install stylelint stylelint-config-property-sort-order-smacss stylelint-config-recommended stylelint-config-standard stylelint-scss -D

根目录下新建 .stylelintrc.js 根据npm安装的包配置

(package.json中有 "type": "module" 需要将.js改为.cjs)

注:stylelint需要降级到 13    .stylelintrc.js中附我使用的包版本

  1. // 包支持
  2. // "stylelint": "^13.13.1",
  3. // "stylelint-config-property-sort-order-smacss": "^7.1.0",
  4. // "stylelint-config-recommended": "^5.0.0",
  5. // "stylelint-config-standard": "^22.0.0",
  6. // "stylelint-scss": "^3.21.0",
  7. module.exports = {
  8. extends: [
  9. 'stylelint-config-recommended',
  10. 'stylelint-config-standard',
  11. 'stylelint-config-property-sort-order-smacss'
  12. ],
  13. plugins: ['stylelint-scss'],
  14. rules: {
  15. 'indentation': 2,
  16. 'color-no-invalid-hex': true,
  17. 'at-rule-no-unknown': null,
  18. 'scss/at-rule-no-unknown': true,
  19. 'no-descending-specificity': null,
  20. 'no-empty-source': null,
  21. 'selector-pseudo-element-no-unknown': null,
  22. 'property-case': null,
  23. 'property-no-unknown': null,
  24. 'declaration-block-trailing-semicolon': null,
  25. }
  26. }

九. normalize.css

 npm i normalize.css --save

main.js 引入

import 'normalize.css/normalize.css'

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/392349
推荐阅读
相关标签
  

闽ICP备14008679号