-
Notifications
You must be signed in to change notification settings - Fork 6
Home
即使曾经安装过也使用最新版node.js重新安装,自动覆盖。修改到合适分区,例如D:\。其他全部默认,无需安装Chocolatey。
windows是中文用户名可能会有影响。
进入windows命令行模式,设置npm服务器使用taobao镜像。复制以下命令,在控制台鼠标右键选择粘帖,回车执行。
npm config set registry http://registry.npm.taobao.org/https://cn.vitejs.dev/guide/#scaffolding-your-first-vite-project
在合适位置创建vue-workspace工作区目录,存放所有vue项目。
通过命令行,进入工作区,执行vite项目初始化命令创建,vue,ts,项目。
npm init vite@lateststep1,输入项目名称。例如,vite-project-bo;step2,选择vue;step3,选择vue-ts
命令行进入工程目录,安装依赖。由于配置了国内镜像,下载速度会很快。依赖在100M以上
npm i下载压缩版vscode,解压运行。安装volar/eslint,2个插件,重启vs code。
打开项目
在控制台视图(默认即是当前项目路径下),crtl+`,运行命令启动项目
npm run dev结束运行
ctrl+c目的,以eslint检查代码规范,以prettier统一代码风格,并在保存文件时自动修复错误
以下方法参照vue/cli创建的项目来实现,当前(2021-11-14)官方还没有提供手脚架创建vite项目
安装以下依赖
npm i -D eslint prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser @vue/eslint-config-prettier @vue/eslint-config-typescript eslint-config-prettier eslint-plugin-vue创建,.prettierrc.json。单引号,无分号
{
"htmlWhitespaceSensitivity": "ignore",
"singleQuote": true,
"semi": false
}创建,.eslintrc.js。按vue-eslint-prettier检查
module.exports = {
root: true,
env: {
node: true,
},
extends: [
'plugin:vue/vue3-essential',
'eslint:recommended',
'@vue/typescript/recommended',
'@vue/prettier',
'@vue/prettier/@typescript-eslint',
],
globals: {
defineProps: 'readonly',
defineEmits: 'readonly',
defineExpose: 'readonly',
withDefaults: 'readonly',
},
parserOptions: {
ecmaVersion: 2020,
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'vue/multi-word-component-names': 'off',
},
}当前项目.vscode目录下,创建settings.json。声明项目的vscode配置
{
"editor.fontSize": 16,
"editor.tabSize": 2,
"window.zoomLevel": 1.0,
"files.eol": "\n",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
},
"git.enableSmartCommit": true,
// "workbench.colorTheme": "Default Light+",
"typescript.updateImportsOnFileMove.enabled": "always",
"javascript.updateImportsOnFileMove.enabled": "always",
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"emmet.triggerExpansionOnTab": true,
"emmet.includeLanguages": {
"vue-html": "html",
"vue": "html"
}
}在 tsconfig.json 添加快捷路径别名,追加在compilerOptions。router引入组件时依然无效
"baseUrl": ".",
"paths": {
"@/*": [
"src/*"
]
}在vite.config.ts中追加以下配置。否则运行时无法识别@。同时声明了其他常用配置
resolve: {
alias: {
'@': '/src',
},
},
base: './',
build: {
sourcemap: false,
},安装router
npm i vue-router@next创建,src/router/index.ts。模板
import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'
const routes: Array<RouteRecordRaw> = []
const router = createRouter({
history: createWebHashHistory(),
routes,
})
export default router安装vuex
npm i vuex@next 创建,src/store/index.ts。模板
import { MutationTree, ActionTree, createStore } from 'vuex'
export interface State {
message?: string
}
const myState: State = {}
const myMutations: MutationTree<State> = {}
const myActions: ActionTree<State, State> = {}
export default createStore({
state: myState,
mutations: myMutations,
actions: myActions,
modules: {},
})在main.ts中引入router/vuex
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
createApp(App).use(router).use(store).mount('#app')vite项目没有手脚架很不适合于初学者
一些再vue/cli里可以能够自动识别引入的类型,当前得手动引入
vue3.2引入的script setup标签很方便,且声明的响应式数据/函数等,视图终于支持了自动提示
vue组件规范名称为多单词,使用大驼峰或-短横线分割
https://vuejs.org/v2/style-guide/#Multi-word-component-names-essential