摘要:例如在中加入配置塊進(jìn)行配置例如,直接在代碼文件中以注釋的方式定義需要注意的是,代碼文件內(nèi)以注釋配置的規(guī)則會覆蓋配置文件里的規(guī)則,即優(yōu)先級要更高。
在 Vue-cli 創(chuàng)建的項目中,使用了 ESLint 規(guī)范代碼的項目中如何針對單個js文件禁用ESLint語法校驗,但整個項目依然保留 ESLint 的校驗規(guī)則?
在代碼頂部添加一行注釋 /eslint-disable/ (兩個/中間有兩個*,像題目那樣) ,ESLint 在校驗的時候就會跳過后面的代碼。
比如:main.js 里的/ eslint-disable no-new /(兩個/中間有兩個*,像題目那樣)
在js里面,new 一個對象,需要賦值給某個值(變量),用Vue實例化的時候,不需要賦值給值(變量),所以要多帶帶給配一條規(guī)則,給new Vue這行代碼上面加這個注釋,把這行代碼規(guī)則的校驗跳過,通過eslint-disable。eslint的常用技巧之一
一. 安裝
npm install eslint
二. 配置
ESLint的配置有三種方式:
1、.eslintrc.*文件的配置
首先你需要初始化配置文件。
eslint init
這將會在你的當(dāng)前目錄下生成一個.eslintrc.*文件。.eslintrc的后綴可以是.js、.yalm、.yml和.json中的任意一個。以.json格式為例。
.eslintrc.json 文件的內(nèi)容類似如下: { //extends用于引入某配置作為基礎(chǔ)配置,然后再在后續(xù)的rules中對其進(jìn)行擴展 "extends": "eslint:recommended",
//如果你想使用插件中的環(huán)境變量,請先把插件名寫入"plugins"數(shù)組中,然后再在"env":{}中以"插件名/插件中的需引入的環(huán)境名"的方式進(jìn)行指定。
"plugins": ["example"], "env": { //An environment defines global variables that are predefined. //定義env會帶進(jìn)來一些全局變量 "browser": true, "node": true, "es6":true, "mocha":"true", "qunit":true, "jquery":true, "mongo":true, //通過插件名命名空間引入插件中的環(huán)境 "example/custom": true }, "globals": { // globals are the additional global variables your script accesses during execution. // 即插件在執(zhí)行過程中用到的其它全局變量 "angular": true, }, "rules": { //which rules are enabled and at what error level. //這里指定用哪些規(guī)則進(jìn)行eslint檢查以及每個規(guī)則的錯誤級別:0或者off表示規(guī)則關(guān)閉,出錯也被忽略;1或者warn表示如果出錯會給出警告;2或者error表示如果出錯會報出錯誤 "semi": ["error", "always"], "quotes": ["error", "double"] }, //parser指定解析器,默認(rèn)的為espree,可選的還有Esprima、Babel-ESLint。 //babel-eslint is a wrapper around the Babel parser that makes it compatible with ESLint. //babel-eslint是一個Babel parser的包裝器,這個包裝器使得Babel parser可以和ESLint協(xié)調(diào)工作 "parser": "babel-eslint", "parserOptions": { //ecmaVersion指定ECMAScript的版本,可選值有3567,默認(rèn)是5 "ecmaVersion": 6, //sourceType指定被檢查的文件是什么擴展名的,可選項"script"和"module",默認(rèn)是"script"。"module"是ES6的。 "sourceType": "module", //ecmaFeatures指定你想使用哪些額外的語言特性 "ecmaFeatures": { "jsx": true } }, } “rules”中的每一項即是一條規(guī)則。其中,“:”之前的事規(guī)則的名稱(如上面的”semi” 和 “quotes”),“:”后面的數(shù)組中,第一個項用于指定規(guī)則的錯誤級別,它有 3 個可選的取值: “off” 或者 0 - 關(guān)閉規(guī)則 “warn” or 1 - 不符合規(guī)則時作為一個警告(不會影響退出碼) “error” or 2 - 不符合規(guī)則時視作一個錯誤 (退出碼為1) 在你的.eslintrc文件中包含這行代碼,可以使用推薦規(guī)則。 "extends": "eslint:recommended" 通過這行代碼,會開啟規(guī)則頁中標(biāo)有對勾符號的規(guī)則。當(dāng)然,你也可以到 npmjs.com 搜索 “eslint-config” 查找別人創(chuàng)建好的配置列表,并拿來直接使用。 .eslintrc.如果放在項目的根目錄中,則會作用于整個項目。如果在項目的子目錄中也包含著.eslintrc文件,則對于子目錄中文件的檢查會忽略掉根目錄中的配置,而直接采用子目錄中的配置,這就能夠在不同的目錄范圍內(nèi)應(yīng)用不同的檢查規(guī)則,顯得比較靈活。ESLint采用逐級向上查找的方式查找.eslintrc.文件,當(dāng)找到帶有”root”: true配置項的.eslintrc.*文件時,將會停止向上查找。 “extends”除了可以引入推薦規(guī)則,還可以以文件形式引入其它的自定義規(guī)則,然后在這些自定義規(guī)則的基礎(chǔ)上用rules去定義個別規(guī)則,從而覆蓋掉”extends”中引入的規(guī)則。例如: { "extends": [ "./node_modules/coding-standard/eslintDefaults.js", // Override eslintDefaults.js "./node_modules/coding-standard/.eslintrc-es6", // Override .eslintrc-es6 "./node_modules/coding-standard/.eslintrc-jsx", ], "rules": { // Override any settings from the "parent" configuration "eqeqeq": "warn" } } 2、在 package.json 中加入 eslintConfig 配置塊進(jìn)行配置 例如: { "name": "demo", "version": "1.0.0", "eslintConfig": { "env": { "browser": true, "node": true }, "rules": { "eqeqeq": "warn" } } } 3、直接在代碼文件中以注釋的方式定義 需要注意的是,代碼文件內(nèi)以注釋配置的規(guī)則會覆蓋配置文件里的規(guī)則,即優(yōu)先級要更高。 例如: 臨時在一段代碼中取消eslint檢查,可以如下設(shè)置: `/* eslint-disable */ // Disables all rules between comments alert(‘foo’); /* eslint-enable */ 臨時在一段代碼中取消個別規(guī)則的檢查(如no-alert, no-console): /* eslint-disable no-alert, no-console */ // Disables no-alert and no-console warnings between comments alert(‘foo’); console.log(‘bar’); /* eslint-enable no-alert, no-console */ 在整個文件中取消eslint檢查: /* eslint-disable */ // Disables all rules for the rest of the file alert(‘foo’); 在整個文件中禁用某一項eslint規(guī)則的檢查: /* eslint-disable no-alert */ // Disables no-alert for the rest of the file alert(‘foo’); 針對某一行禁用eslint檢查: alert(‘foo’); // eslint-disable-line // eslint-disable-next-line alert(‘foo’); 針對某一行的某一具體規(guī)則禁用eslint檢查: alert(‘foo’); // eslint-disable-line no-alert // eslint-disable-next-line no-alert alert(‘foo’); 針對某一行禁用多項具體規(guī)則的檢查: alert(‘foo’); // eslint-disable-line no-alert, quotes, semi // eslint-disable-next-line no-alert, quotes, semi alert(‘foo’);
三. 把ESLint集成到工作流之中
比如,與babel和gulp結(jié)合:
package.json: { "name": "my-module", "scripts": { "lint": "eslint my-files.js" }, "devDependencies": { "babel-eslint": "...", "eslint": "..." } }
或者
gulpfile.js var gulp = require("gulp"); var eslint = require("gulp-eslint"); gulp.task("lint", function() { return gulp.src("app/**/*.js") .pipe(eslint()) .pipe(eslint.format()); }); eslintrc.*: { "plugins": [ "react" //使用eslint-plugin-react插件 ], "ecmaFeatures": { "jsx": true //開啟ESLint JSX 支持 } "rules": { "react/display-name": 1, //注意一下,自定義規(guī)則都是以插件名稱為命名空間的 "react/jsx-boolean-value": 1 } }
四. 通過配置.eslintignore文件忽略掉不想被檢查的文件
可以通過在項目目錄下建立.eslintignore文件,并在其中配置忽略掉對哪些文件的檢查。需要注意的是,不管你有沒有在.eslintignore中進(jìn)行配置,eslint都會默認(rèn)忽略掉對/node_modules/ 以及 /bower_components/文件的檢查。下面是一個簡單的.eslintignore文件的內(nèi)容。
# Ignore built files except build/index.js build/ !build/index.js
五. 執(zhí)行檢測
eslint test.js test2.js
文中后部分例子來源于:https://blog.csdn.net/qq_3100...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/99402.html
摘要:簡介是由編寫的一個可擴展每條規(guī)則獨立不內(nèi)置編碼風(fēng)格為理念的工具。在團隊協(xié)作中,為避免低級產(chǎn)出風(fēng)格統(tǒng)一的代碼,會預(yù)先制定編碼規(guī)范。使用工具和代碼風(fēng)格檢測工具,則可以輔助編碼規(guī)范執(zhí)行,有效控制代碼質(zhì)量。 簡介 ESLint 是由 Nicholas C. Zakas 編寫的一個可擴展、每條規(guī)則獨立、不內(nèi)置編碼風(fēng)格為理念的 Lint 工具。 在團隊協(xié)作中,為避免低級 Bug、產(chǎn)出風(fēng)格統(tǒng)一的代碼...
摘要:必須阻止和事件的默認(rèn)行為,這樣才能觸發(fā)事件文件對象將圖片轉(zhuǎn)換為獲取到圖片內(nèi)容微信截圖上傳監(jiān)聽事件,通過剪貼板對象獲取圖片信息。但是最好的方案還是不管下載上傳都直接走獨立圖片服務(wù)器,避免對服務(wù)器造成額外的壓力。 更多文章請點擊Jade 接了一個「常規(guī)」需求:開發(fā)一個本地上傳圖片控件,需要支持三種上傳方式: 支持打開本地目錄,選擇本地圖片上傳 支持拖曳圖片上傳 支持微信截圖上傳 我們...
摘要:完成已完成安裝,重新啟動編譯。可以打開微信開發(fā)者工具,新建項目,項目目錄就是文件夾。記錄開發(fā)過程中遇到的問題及解決方案,如有不全或者錯誤歡迎留言更正持續(xù)整理更新正 記錄開發(fā)過程中遇到的問題及通過自己摸索或查閱網(wǎng)上的教程整理出的解決方案,如有不全或者錯誤歡迎留言更正 1. 如何設(shè)置輸入框 input 中 placeholder的字體顏色、字號 input::-we...
摘要:完成已完成安裝,重新啟動編譯??梢源蜷_微信開發(fā)者工具,新建項目,項目目錄就是文件夾。記錄開發(fā)過程中遇到的問題及解決方案,如有不全或者錯誤歡迎留言更正持續(xù)整理更新正 記錄開發(fā)過程中遇到的問題及通過自己摸索或查閱網(wǎng)上的教程整理出的解決方案,如有不全或者錯誤歡迎留言更正 1. 如何設(shè)置輸入框 input 中 placeholder的字體顏色、字號 input::-we...
閱讀 2522·2021-11-11 16:54
閱讀 2734·2021-09-26 09:47
閱讀 4062·2021-09-08 09:36
閱讀 2822·2021-07-25 21:37
閱讀 980·2019-08-30 15:54
閱讀 2604·2019-08-30 14:22
閱讀 3316·2019-08-30 13:57
閱讀 2838·2019-08-29 17:17