Skip to content

Commit

Permalink
fix(eslint): use 'eslint-webpack-plugin' instead 'eslint-loader'
Browse files Browse the repository at this point in the history
  • Loading branch information
front-end-captain committed Apr 22, 2021
1 parent e6c05d2 commit 1a5ab86
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 14 deletions.
3 changes: 2 additions & 1 deletion packages/@luban/cli-plugin-eslint/package.json
Expand Up @@ -36,6 +36,7 @@
"node": ">=10"
},
"dependencies": {
"@luban-cli/cli-shared-utils": "^2.0.0-next.19"
"@luban-cli/cli-shared-utils": "^2.0.0-next.19",
"eslint-webpack-plugin": "^2.5.4"
}
}
2 changes: 1 addition & 1 deletion packages/@luban/cli-plugin-eslint/src/airbnb.ts
Expand Up @@ -76,7 +76,7 @@ export function eslintConfigAirbnb(api: GeneratorAPI, options: Required<RootOpti
api.extendPackage({
devDependencies: {
eslint: "^6.8.0",
"eslint-loader": "^4.0.2",
"eslint-webpack-plugin": "^2.5.4",
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
Expand Down
20 changes: 11 additions & 9 deletions packages/@luban/cli-plugin-eslint/src/index.ts
Expand Up @@ -2,20 +2,22 @@ import {
ConfigPluginApplyCallbackArgs,
ConfigPluginInstance,
} from "@luban-cli/cli-shared-types/dist/cli-service/definitions";
import EslintWebpackPlugin from "eslint-webpack-plugin";

export default class Eslint implements ConfigPluginInstance {
apply(args: ConfigPluginApplyCallbackArgs) {
const { api } = args;

api.chainWebpack("client", (config) => {
config.module
.rule("eslint")
.test(/\.ts[x]?$/)
.enforce("pre")
.exclude.add(/node_modules/)
.end()
.use("eslint-loader")
.loader("eslint-loader")
api.chainAllWebpack((config) => {
config
.plugin("eslint")
.use(EslintWebpackPlugin, [
{
context: api.getContext(),
extensions: ["ts", ".tsx"],
exclude: "node_modules",
},
])
.end();
});
}
Expand Down
9 changes: 8 additions & 1 deletion packages/@luban/cli-plugin-eslint/src/leap.ts
Expand Up @@ -26,7 +26,6 @@ export function eslintConfigLeap(api: GeneratorAPI, options: Required<RootOption
},
devDependencies: {
eslint: "^6.8.0",
"eslint-loader": "^4.0.2",
"eslint-config-leapfe": "^1.0.0",
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-react": "^7.22.0",
Expand All @@ -38,6 +37,14 @@ export function eslintConfigLeap(api: GeneratorAPI, options: Required<RootOption
},
});

if (options.type === "web") {
api.extendPackage({
devDependencies: {
"eslint-webpack-plugin": "^2.5.4",
},
});
}

api.render("./template/leap", {
eslintExtends: JSON.stringify(eslintExtends),
parserOptions: JSON.stringify(parserOptions.toPlainObject()),
Expand Down
2 changes: 1 addition & 1 deletion packages/@luban/cli-plugin-eslint/src/standard.ts
Expand Up @@ -70,7 +70,7 @@ export function eslintConfigStandard(api: GeneratorAPI, options: Required<RootOp
api.extendPackage({
devDependencies: {
eslint: "^6.8.0",
"eslint-loader": "^4.0.2",
"eslint-webpack-plugin": "^2.5.4",
"eslint-config-prettier": "^6.15.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
Expand Down
14 changes: 13 additions & 1 deletion yarn.lock
Expand Up @@ -3179,7 +3179,7 @@
resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==

"@types/eslint@*":
"@types/eslint@*", "@types/eslint@^7.2.6":
version "7.2.10"
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-7.2.10.tgz#4b7a9368d46c0f8cd5408c23288a59aa2394d917"
integrity sha512-kUEPnMKrqbtpCq/KTaGFFKAcz6Ethm2EjCoKIDaCmfRBWLbFuTcOJfTlorwbnboXBzahqWLgUp1BQeKHiJzPUQ==
Expand Down Expand Up @@ -9329,6 +9329,18 @@ eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==

eslint-webpack-plugin@^2.5.4:
version "2.5.4"
resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-2.5.4.tgz#473b84932f1a8e2c2b8e66a402d0497bf440b986"
integrity sha512-7rYh0m76KyKSDE+B+2PUQrlNS4HJ51t3WKpkJg6vo2jFMbEPTG99cBV0Dm7LXSHucN4WGCG65wQcRiTFrj7iWw==
dependencies:
"@types/eslint" "^7.2.6"
arrify "^2.0.1"
jest-worker "^26.6.2"
micromatch "^4.0.2"
normalize-path "^3.0.0"
schema-utils "^3.0.0"

eslint@^6.8.0:
version "6.8.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
Expand Down

0 comments on commit 1a5ab86

Please sign in to comment.