目錄
Vue 2.0的項目擴展
1.如何舒服地使用Atom
??安裝插件
??配置皮膚顏色
2.Vue項目引入組件庫
??引入方式
??支持ES2015
??Mint UI
??ElementUI
??iView
??Vonic
??MuseUI
3.Vue項目的調(diào)試工具
??vue-devtools
??移動端調(diào)試
????Chrome DevTools
????Safari Web Inspector
????Eruda
????spy-debuger
4.Vue項目官方依賴庫
??vue-loder
??vue-router
??Vuex
5.Vue項目第三方依賴庫
??ESlint
????ESlint規(guī)則摘要
????ESlint規(guī)則風(fēng)格
????ESlint忽略文件
在使用vue-cli創(chuàng)建的vue項目,默認添加了一些第三方依賴庫。
以下為package.json文件的源碼胸墙,Vue項目的依賴庫包含在dependencies和devDependencies里。其中,vue、vue-router、vue-loader幢哨、vue-template-compiler、vue-template-compiler 是由尤雨溪團隊開發(fā)的嫂便,稱之為官方依賴捞镰,其他由第三方開發(fā)的依賴,就是第三方依賴毙替,本文就是要講一講這些依賴庫岸售。
{
"name": "myproject",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "thomasTY",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e",
"lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs",
"build": "node build/build.js"
},
"dependencies": {
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^7.1.1",
"babel-loader": "^7.1.1",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^3.19.0",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-html": "^3.0.0",
"eslint-config-standard": "^10.2.1",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
"eventsource-polyfill": "^0.9.6",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"webpack-bundle-analyzer": "^2.9.0",
"cross-env": "^5.0.1",
"karma": "^1.4.1",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.3.0",
"karma-phantomjs-launcher": "^1.0.2",
"karma-phantomjs-shim": "^1.4.0",
"karma-sinon-chai": "^1.3.1",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.31",
"karma-webpack": "^2.0.2",
"mocha": "^3.2.0",
"chai": "^4.1.2",
"sinon": "^4.0.0",
"sinon-chai": "^2.8.0",
"inject-loader": "^3.0.0",
"babel-plugin-istanbul": "^4.1.1",
"phantomjs-prebuilt": "^2.1.14",
"node-notifier": "^5.1.2",
"chromedriver": "^2.27.2",
"cross-spawn": "^5.0.1",
"nightwatch": "^0.9.12",
"selenium-server": "^3.0.1",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"rimraf": "^2.6.0",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"portfinder": "^1.0.13",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
ESlint
ESlint是一個基于ECMAScript標準的代碼審查工具(類似的工具還有JSLint、JSHint厂画、Css Lint)凸丸,用來避免編碼低級錯誤和統(tǒng)一代碼的風(fēng)格,會對JavaScript木羹、JSX代碼進行檢查甲雅。
在使用vue-Cli創(chuàng)建項目的時候解孙,是可以選擇是否引入ESLint的。創(chuàng)建時沒有引入的ESLint的項目抛人,也可以后期引入弛姜。
不過,ESLint代碼審查工具的引入是非常有必要的妖枚,由于腳本語言的執(zhí)行沒有編譯的過程廷臼,只能通過結(jié)果來校驗代碼是否正確,因此Vue項目的正確運行會是非常依賴于ESlint對代碼的檢查的绝页。
創(chuàng)建好項目荠商,感覺終于可以愉快地編碼了,但是卻報了一堆錯誤续誉,就是js代碼沒有遵守ESlint編碼規(guī)范導(dǎo)致的:
- 鍵值對的冒號后面必須加空格
- 代碼縮進的空格一定要對齊莱没,不能多也不能少;函數(shù)名之后要加括號
- 不需要以分號結(jié)束語句
ESlint規(guī)則摘要
ESLint提供一下校驗:
- 語法錯誤
- 不重要或丟失的標點符號酷鸦,如分號饰躲、空格
- 沒法運行到的代碼塊
- 未被使用的參數(shù)
- 漏掉的結(jié)束符,如}
- 確保樣式的統(tǒng)一規(guī)則臼隔,如sass或者less
- 變量命名
這里對ESLint校驗代碼的規(guī)則做簡要摘取嘹裂,以供參考:
使用兩個空格進行縮進
字符串使用單引號(需要轉(zhuǎn)義的地方除外)
不再有冗余的變量
無分號
行首不要以
(
,[
摔握, 或`` `開頭關(guān)鍵字后加空格寄狼,如:
if (condition) { ... }
函數(shù)名后加空格,如:
function name (arg) { ... }
堅持使用全等
===
摒棄==
一但在需要檢查null || undefined
時可以使用obj == null
氨淌。-
一定要處理 Node.js 中錯誤回調(diào)傳遞進來的
err
參數(shù)泊愧,如:try { console.log('') } catch (err) { console.log(err) }
定義和使用瀏覽器全局變量時加上
window
前綴(document
和navigator
除外),如:window.num
避免無意中使用到了命名看上去很普通的全局變量(如: open
盛正,length
拼卵,event
,name
)
ESLint全部可選的規(guī)則在這里蛮艰,可以自由進行配置(.eslintrc.js):http://eslint.cn/docs/rules/
ESlint規(guī)則風(fēng)格
就目前統(tǒng)計,ESlint提供了近250項代碼的限制規(guī)則雀彼,這里說的風(fēng)格是指對250項規(guī)則打開或者關(guān)閉的配置壤蚜。關(guān)于ESlint的配置,在我們通過vue-cli創(chuàng)建項目時(特指webpack徊哑、pwa袜刷、browserify模板),選擇 'standard' 或者 'Airbnb'即可莺丑,不需要做額外操作著蟹。假如在項目創(chuàng)建之后才引入ESLint的安裝步驟在這里:http://eslint.cn/docs/user-guide/getting-started墩蔓。
- ESlint官方推薦風(fēng)格
- 安裝:通過在.eslintrc.js添加
"extends": "eslint:recommended"
使用 - 規(guī)則:http://eslint.cn/docs/rules/ 帶有
√
標記的部分
- 安裝:通過在.eslintrc.js添加
- 其他風(fēng)格
ESlint忽略文件
為了兼容一些沒有使用ESLint規(guī)范的文件,我們要對這些文件進行忽略萧豆。
-
忽略部分代碼
// 關(guān)閉驗證關(guān)閉校驗 /*eslint-disable */ var str= "let's go"; /*eslint-enable */
-
忽略文件
// 在根目錄下創(chuàng)建一個.eslintignore文件 // 忽略build目錄下所有js文件 build/*.js // 忽略adress目錄下所有文件 src/adress/*