vue-cli生成项目时你应当知道的
一、安裝
npm install -g vue-cli二、創(chuàng)建項目
vue init 模板名 項目名 vue init webpack mymall模板名:
1 . webpack 最常用
2 . webpack-simple // 一個簡單webpack+vue-loader的模板,不包含其他功能。
3 . browserify // 一個全面的Browserify+vueify 的模板,功能包括熱加載,linting,單元檢測。
4 . browserify-simple // 一個簡單Browserify+vueify的模板,不包含其他功能。
5 . pwa // 基于webpack模板的vue-cli的PWA模板
6 . simple // 一個最簡單的單頁應(yīng)用模板
執(zhí)行指令后,會讓用戶輸入幾個基本的選項(vue-router在這里就安裝了)
Project name :項目名稱 ,如果不需要更改直接回車就可以了。注意:這里不能使用大寫。
Project description:項目描述,默認(rèn)為A Vue.js project,直接回車,不用編寫。
Author:作者,如果你有配置git,他會讀取.ssh文件中的user。
Install vue-router? 是否安裝vue的路由插件,Y代表安裝,N無需安裝,下面的命令也是一樣的。
Use ESLint to lint your code? 是否用ESLint來限制你的代碼錯誤和風(fēng)格
setup unit tests with Karma + Mocha? 是否需要安裝單元測試工具Karma+Mocha。
Setup e2e tests with Nightwatch?是否安裝e2e來進(jìn)行用戶行為模擬測試。
Should we run npm install for you after the project has been created?(recommended)npm
三、build文件夾注意點
3.1 package.json – npm run dev時做了什么?
3.1.1 文件目錄
|-- build // 項目構(gòu)建(webpack)相關(guān)代碼
| |-- build.js // 生產(chǎn)環(huán)境構(gòu)建代碼
| |-- check-version.js // 檢查node、npm等版本
| |-- utils.js // 構(gòu)建工具相關(guān)
| |-- vue-loader.conf.js // webpack loader配置
| |-- webpack.base.conf.js // webpack基礎(chǔ)配置
| |-- webpack.dev.conf.js // webpack開發(fā)環(huán)境配置,構(gòu)建開發(fā)本地服務(wù)器
| |-- webpack.prod.conf.js // webpack生產(chǎn)環(huán)境配置
|-- config // 項目開發(fā)環(huán)境配置
| |-- dev.env.js // 開發(fā)環(huán)境變量
| |-- index.js // 項目一些配置變量
| |-- prod.env.js // 生產(chǎn)環(huán)境變量
| |-- test.env.js // 測試腳本的配置
|-- src // 源碼目錄
| |-- components // vue所有組件
| |-- router // vue的路由管理
| |-- App.vue // 頁面入口文件
| |-- main.js // 程序入口文件,加載各種公共組件
|-- static // 靜態(tài)文件,比如一些圖片,json數(shù)據(jù)等
|-- test // 測試文件
| |-- e2e // e2e 測試
| |-- unit // 單元測試
|-- .babelrc // ES6語法編譯配置
|-- .editorconfig // 定義代碼格式
|-- .eslintignore // eslint檢測代碼忽略的文件(夾)
|-- .eslintrc.js // 定義eslint的plugins,extends,rules
|-- .gitignore // git上傳需要忽略的文件格式
|-- .postcsssrc // postcss配置文件
|-- README.md // 項目說明,markdown文檔
|-- index.html // 訪問的頁面
|-- package.json // 項目基本信息,包依賴信息等
package.json其中這段代碼:
當(dāng)npm run dev時,執(zhí)行了:
這句話的意思是利用 webpack-dev-server 讀取 webpack.dev.conf.js 信息并啟動一個本地服務(wù)器。
3.2 dependencies 與 devDependencies
dependencies 是運行時依賴(生產(chǎn)環(huán)境) npm install --save (package name)
devDependencies 是開發(fā)時的依賴(開發(fā)環(huán)境) npm install –save-dev (package name)
3.3 基礎(chǔ)配置文件 webpack.base.conf.js – 告訴webpack加載后綴為(.js .vue .json)的文件
其中:對src和test文件夾下的.js文件使用babel-loader將es6+的代碼轉(zhuǎn)成es5
能夠使用戶在引入模塊時不帶擴展
3.4 開發(fā)環(huán)境配置文件 webpack.dev.conf.js
// webpack-dev-server服務(wù)器配置 devServer: { hot: true, // 開啟熱模塊加載} plugins: [new HtmlWebpackPlugin({// 指定編譯后生成的html文件名filename: 'index.html',// 需要處理的模板template: 'index.html',// 打包過程中輸出的js、css的路徑添加到html文件中// css文件插入到head中// js文件插入到body中,可能的選項有 true, 'head', 'body', falseinject: true}),3.5 生產(chǎn)模式配置文件 webpack.prod.conf.js
打包時做了什么
// copy-webpack-plugin,用于將static中的靜態(tài)文件復(fù)制到文件夾dist const CopyWebpackPlugin = require('copy-webpack-plugin')new HtmlWebpackPlugin({minify: {// 刪除index.html中的注釋removeComments: true,// 刪除index.html中的空格collapseWhitespace: true,// 刪除各種html標(biāo)簽屬性值的雙引號removeAttributeQuotes: true}})四、 .編碼規(guī)范.editorconfig (自定義)
這也就是eslint在檢查代碼的依據(jù)
1 root = true 2 3 [*] // 對所有文件應(yīng)用下面的規(guī)則 4 charset = utf-8 // 編碼規(guī)則用utf-8 5 indent_style = space // 縮進(jìn)用空格 6 indent_size = 2 // 縮進(jìn)數(shù)量為2個空格 7 end_of_line = lf // 換行符格式 8 insert_final_newline = true // 是否在文件的最后插入一個空行 9 trim_trailing_whitespace = true // 是否刪除行尾的空格五、組件駝峰命名
5.1組件中 (html短橫線,模板字符串駝峰)
js中(模板字符串 {{ }} ):vue的組件的props屬性支持駝峰命名camelCased ,不支持連接線命名,使用是用連接線進(jìn)行賦值或者數(shù)據(jù)綁定!
html中:HTML 特性是不區(qū)分大小寫的,要使用連接線 kebab-case (短橫線隔開式)
js中:之所以沒有前面沒有打印出來9,是因為程序走的時候,把英文連接符當(dāng)做減號看待,myname.first和name是undefined,所以會 undefined-undefined=NaN
具體應(yīng)該看vue文檔:Prop-的大小寫-camelCase-vs-kebab-case
5.2 組件名大小寫
組件注冊
定義組件名的方式有兩種:使用 kebab-case (全小寫) Vue.component('my-component-name', { /* ... */ }) 當(dāng)使用 kebab-case (短橫線分隔命名) 定義一個組件時,你也必須在引用這個自定義元素時使用 kebab-case,例如 <my-component-name>。使用 PascalCase Vue.component('MyComponentName', { /* ... */ }) 當(dāng)使用 PascalCase (首字母大寫命名) 定義一個組件時,你在引用這個自定義元素時兩種命名法都可以使用。也就是說 <my-component-name> 和 <MyComponentName> 都是可接受的。注意,盡管如此,直接在 DOM (即非字符串的模板) 中使用時只有 kebab-case 是有效的。再來看看vue官方的風(fēng)格指南: 組件名為多個單詞
組件名應(yīng)該始終是多個單詞的,根組件 App 以及 、 之類的 Vue 內(nèi)置組件除外。
這樣做可以避免跟現(xiàn)有的以及未來的 HTML 元素相沖突,因為所有的 HTML 元素名稱都是單個單詞的。
wow 風(fēng)格指南應(yīng)當(dāng)好好看看 😃
總結(jié)
以上是生活随笔為你收集整理的vue-cli生成项目时你应当知道的的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java标书_java软件项目投标技术标
- 下一篇: mysql if 多个_MySQL使用I