VisualStudioCode 创建Vue 3.0 项目

https://vitejs.cn/guide/#%E6%90%AD%E5%BB%BA%E7%AC%AC%E4%B8%80%E4%B8%AA-vite-%E9%A1%B9%E7%9B%AE
第一步
npm init @vitejs/app
第二部
npm install
第三步 启动
npm run dev
这时会发现项目中有多处报红线,需要设置

解决方法:

1,首先检查html片段没有语法错误的话,就是一个检查语法格式的插件"vetur"引起的。

2,解决方法是:vscode -> 首选项 -> 设置 -> 搜索 (vetur),将vetur.validation.template 设置为 false 就可以解决问题了。

以解决问题了。

33bceb0bf392b265d67ca628c3da82d.png

不要使用Vetur 插件,而是使用Vue Language Features(Volar) 所有的报错都消失了

 

//解决vite   use `--host` to expose
 server:{
    host:'0.0.0.0',//解决vite   use `--host` to expose
    port:8080,
    open:true
  }

 运行自动打开需要安装

 

 

 

 //vite 配置别名 npm install @types/node --save-dev
  resolve:{
    alias:[
      {
         find:'@',
         replacement:resolve(__dirname,'src')
      }
    ]
  }
 
整体结构
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue()],
  server:{
    host:'0.0.0.0',//解决vite   use `--host` to expose
    port:8080,
    open:true
  },
  //vite 配置别名 npm install @types/node --save-dev
  resolve:{
    alias:[
      {
         find:'@',
         replacement:resolve(__dirname,'src')
      }
    ]
  }
})

 

 

配置路由

npm install vue-router@4

然后在 src 文件下创建 router 文件夹
再在router 文件夹下创建 index.ts
内容如下
import {createRouter,createWebHistory,RouteRecordRaw} from 'vue-router'
import Layout from '@/components/HelloWorld.vue'
const routes:Array<RouteRecordRaw>=[
    {
        path:'/',
        name:'home',
        component:Layout
    }
]
//创建
export  default  createRouter({
    history:createWebHistory(),
    routes
})

 

再到main.ts 中使用路由

import router  from './router'
createApp(App).use(router).mount('#app')
 
 
然後在:App.vue 中添加
<script setup lang="ts">
// This starter template is using Vue 3 <script setup> SFCs
// Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
import HelloWorld from './components/HelloWorld.vue'
</script>

<template>
  <router-view/>
</template>


<style>

</style>

 

 
 
安装  Vuex

npm install vuex@next --save
在src 目录下建立store 然后在下面再新建index.ts

import { InjectionKey } from 'vue'
import { createStore, useStore as baseUseStore, Store } from 'vuex'

export interface State {
  count: number
}

export const key: InjectionKey<Store<State>> = Symbol()

export const store = createStore<State>({
  state: {
    count: 0
  },
  mutations:{
      setCount(state:State,count:number){
          state.count=count;
      }
  },
  getters:{
      getCount(state:State){
          return state.count;
      }
  }
})

// 定义自己的 `useStore` 组合式函数
export function useStore () {
  return baseUseStore(key)
}

 





安装 eslint
npm install --save-dev eslint eslint-plugin-vue
在根目录下创建文件 .eslintrc.js

module.exports = {
    root:true,
    parserOptions:{
        sourceType:'module'
    },
    parser:'vue-eslint-parser',
    extends: ['plugin:vue/vue3-essential','plugin:vue/vue3-strongly-recommended','plugin:vue/vue3-recommended'],
    env:{
        browser:true,
        node:true,
        es6:true
    },
    rules: {
        'no-console':'off',
        'comma-dangle':[2,'never']//禁止使用拖尾逗号
    }
}

 

安装 css 的预处理 sass

npm install -D sass sass-loader

 

 

设置Index.html 的页面样式

<style>
    html,body,#app{
        margin: 0;
        padding: 0;
        border: 0;
        border-collapse: collapse;
        border-spacing: 0;
        list-style: none;
        height: 100%;
    }
</style>

 

tsconfig.json

{
  "compilerOptions": {
    "target": "esnext",
    "useDefineForClassFields": true,
    "module": "esnext",
    "moduleResolution": "node",
    "strict": true,
    "jsx": "preserve",
    "sourceMap": true,
    "resolveJsonModule": true,
    "esModuleInterop": true,
    "lib": ["esnext", "dom"],
    "skipLibCheck": true,//解决打包报 'vue-tsc --noEmit && vite build'的错,忽略所有的声明文件(*.d.ts)的类型检查
    "baseUrl": ".", // 用于设置解析非相对模块名称的基本目录,相对模块不会受到baseUrl的影响
    "paths": { // 用于设置模块名到基于baseUrl的路径映射
        "@/*":["src/*"]
    },
    "types": ["element-plus/global"]
  },
  "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
  "references": [{ "path": "./tsconfig.node.json" }],
  "exclude": ["node_modules"]//ts 排除的文件
}

 


 

 
首先检查html片段没有语法错误的话,就是一个检查语法格式的插件"vetur"引起的。
 
posted @ 2021-10-09 14:06  LuoCore  阅读(445)  评论(0编辑  收藏  举报