本文章可以幫你
- 使用prettier rule定義eslint config
- 改寫default prettier rule
- 設定auto formatter by prettier in VS code setting
- 把config package publish到private NPM
- 下載使用config package
使用prettier rule定義eslint config
基本規劃
- 建立一個使用prettier的linter base
- .eslintrc.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22module.exports = {
env: {
browser: true,
es6: true
},
extends: [
"plugin:prettier/recommended"
],
globals: {
Atomics: "readonly",
SharedArrayBuffer: "readonly"
},
parser: "",
parserOptions: {
ecmaVersion: 2018,
sourceType: "module"
},
plugins: ["eslint-plugin-prettier"],
rules: {
"prettier/prettier": ["error"]
}
};改寫default prettier rule
- .prettierrc.js
1
2
3
4
5
6module.exports = {
semi: true,
singleQuote: false,
printWidth: 120,
tabWidth: 4
};
- .eslintrc.js
- 根據不同程式語言或框架去定義不同的linter,以typescript為例
- .eslintrc.js設定好可以使用以下command去撈出目前所有載入的規則
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16module.exports = {
env: {},
extends: [
// inculing eslint base for javascript
"../eslint-config-base/.eslintrc.js",
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint"
],
globals: {},
parser: "@typescript-eslint/parser",
parserOptions: {},
plugins: [],
rules: {
"@typescript-eslint/no-explicit-any": "off"
}
};1
npx eslint --print-config path::String
- .eslintrc.js
- 測試rules
- 在package.json建立測試script執行測試
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24{
"name": "eslint-config-leoru",
"main": ".eslintrc.js",
"version": "0.0.1",
"license": "MIT",
"scripts": {
"eslint-test-base": "./node_modules/.bin/eslint test/*.* --config eslint-config-base/.eslintrc.js",
"eslint-test-js": "./node_modules/.bin/eslint test/*.js --config eslint-config-javascript/.eslintrc.js",
"eslint-test-ts": "./node_modules/.bin/eslint ./test/typescript_test.ts --config eslint-config-typescript/.eslintrc.js",
"eslint-test-vue2.0": "./node_modules/.bin/eslint test/*.vue --config eslint-config-vue2.0/.eslintrc.js",
"eslint-test-vue3.0": "./node_modules/.bin/eslint test/*.vue --config eslint-config-vue3.0/.eslintrc.js"
},
"dependencies": {},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^2.3.1",
"@typescript-eslint/parser": "^2.3.1",
"typescript": "2.5.2",
"eslint": "^6.4.0",
"eslint-config-prettier": "^6.3.0",
"eslint-plugin-prettier": "^3.1.1",
"eslint-plugin-vue": "^8.1.1",
"prettier": "^1.18.2"
}
}1
npm run eslint-test-ts
- 在package.json建立測試script
設定auto formatter by prettier in VS code setting
在.vscode/setting.json設定
1 | { |
把config package publish到private NPM
先設定project name跟預設執行的main
1 | { |
然後發布吧!!!
1 | npm publish |
下載使用config package
先安裝npm packages for eslint
1 | npm install @eslint-config-leo/eslint-config-base --save-dev |
接著設定project .eslintrc.js and .prettierrc.js
- .eslintrc.js
1
2
3module.exports = {
extends: ["@eslint-config-leo/base"] //eslint-config-可以省略
}; - .prettierrc.js
1
2
3module.exports = {
...require("./node_modules/@eslint-config-leo/eslint-config-base/.prettierrc.js")
};