From 9a2451fc3907c125ac3f7e07ce62122c13aa6bbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nils=20Edstr=C3=B6m?= Date: Wed, 26 Oct 2022 14:01:35 +0200 Subject: [PATCH] Remove dependency on loader-utils and drop webpack 4 support (#942) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Huáng Jùnliàng --- .github/workflows/ci.yml | 6 +++--- package.json | 3 +-- src/index.js | 4 +--- test/cache.test.js | 6 +++++- test/options.test.js | 10 ++++++++-- test/sourcemaps.test.js | 10 ++++++++-- yarn.lock | 28 +--------------------------- 7 files changed, 27 insertions(+), 40 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 527fd9d3..96855b30 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,10 +20,10 @@ jobs: strategy: matrix: os: [ubuntu-latest, windows-latest] - node-version: [14.x, 16.x] - webpack-version: [latest, '4'] + node-version: [14, 16, 18] + webpack-version: ['5'] include: - - node-version: 18.x + - node-version: latest webpack-version: latest os: ubuntu-latest coverage: true diff --git a/package.json b/package.json index 3e062709..e780f2e2 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,11 @@ }, "dependencies": { "find-cache-dir": "^3.3.2", - "loader-utils": "^2.0.0", "schema-utils": "^4.0.0" }, "peerDependencies": { "@babel/core": "^7.12.0", - "webpack": ">=2" + "webpack": ">=5" }, "devDependencies": { "@ava/babel": "^1.0.1", diff --git a/src/index.js b/src/index.js index c3ef225d..070c5c84 100644 --- a/src/index.js +++ b/src/index.js @@ -26,7 +26,6 @@ const injectCaller = require("./injectCaller"); const schema = require("./schema"); const { isAbsolute } = require("path"); -const loaderUtils = require("loader-utils"); const validateOptions = require("schema-utils").validate; function subscribe(subscriber, metadata, context) { @@ -55,8 +54,7 @@ function makeLoader(callback) { async function loader(source, inputSourceMap, overrides) { const filename = this.resourcePath; - let loaderOptions = loaderUtils.getOptions(this); - + let loaderOptions = this.getOptions(); validateOptions(schema, loaderOptions, { name: "Babel loader", }); diff --git a/test/cache.test.js b/test/cache.test.js index c9caae0f..8fa0c3e2 100644 --- a/test/cache.test.js +++ b/test/cache.test.js @@ -171,8 +171,12 @@ test.serial.cb( rules: [ { test: /\.jsx?/, - use: `${babelLoader}?cacheDirectory=true&presets[]=@babel/preset-env`, + loader: babelLoader, exclude: /node_modules/, + options: { + cacheDirectory: true, + presets: ["@babel/preset-env"], + }, }, ], }, diff --git a/test/options.test.js b/test/options.test.js index 9cf64e1b..4f16568b 100644 --- a/test/options.test.js +++ b/test/options.test.js @@ -14,8 +14,11 @@ const globalConfig = { rules: [ { test: /\.jsx?/, - use: babelLoader, + loader: babelLoader, exclude: /node_modules/, + options: { + presets: ["@babel/env"], + }, }, ], }, @@ -42,8 +45,11 @@ test.cb("should interpret options given to the loader", t => { rules: [ { test: /\.jsx?/, - use: babelLoader + "?presets[]=@babel/env", + loader: babelLoader, exclude: /node_modules/, + options: { + presets: ["@babel/env"], + }, }, ], }, diff --git a/test/sourcemaps.test.js b/test/sourcemaps.test.js index c927b53c..31be7d51 100644 --- a/test/sourcemaps.test.js +++ b/test/sourcemaps.test.js @@ -44,8 +44,11 @@ test.cb("should output webpack's sourcemap", t => { rules: [ { test: /\.jsx?/, - use: babelLoader + "?presets[]=@babel/env", + loader: babelLoader, exclude: /node_modules/, + options: { + presets: ["@babel/env"], + }, }, ], }, @@ -147,8 +150,11 @@ test.cb("should output webpack's devtoolModuleFilename option", t => { rules: [ { test: /\.jsx?/, - use: babelLoader + "?presets[]=@babel/env", + loader: babelLoader, exclude: /node_modules/, + options: { + presets: ["@babel/env"], + }, }, ], }, diff --git a/yarn.lock b/yarn.lock index 3a343cbc..c67add6c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2232,7 +2232,6 @@ __metadata: find-cache-dir: ^3.3.2 husky: ^4.3.0 lint-staged: ^10.5.1 - loader-utils: ^2.0.0 nyc: ^15.1.0 pnp-webpack-plugin: ^1.6.4 prettier: ^2.1.2 @@ -2245,7 +2244,7 @@ __metadata: webpack: ^5.34.0 peerDependencies: "@babel/core": ^7.12.0 - webpack: ">=2" + webpack: ">=5" languageName: unknown linkType: soft @@ -2334,13 +2333,6 @@ __metadata: languageName: node linkType: hard -"big.js@npm:^5.2.2": - version: 5.2.2 - resolution: "big.js@npm:5.2.2" - checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e - languageName: node - linkType: hard - "binary-extensions@npm:^1.0.0": version: 1.13.1 resolution: "binary-extensions@npm:1.13.1" @@ -3308,13 +3300,6 @@ __metadata: languageName: node linkType: hard -"emojis-list@npm:^3.0.0": - version: 3.0.0 - resolution: "emojis-list@npm:3.0.0" - checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70 - languageName: node - linkType: hard - "empower-core@npm:^1.2.0": version: 1.2.0 resolution: "empower-core@npm:1.2.0" @@ -5320,17 +5305,6 @@ fsevents@~2.1.2: languageName: node linkType: hard -"loader-utils@npm:^2.0.0": - version: 2.0.2 - resolution: "loader-utils@npm:2.0.2" - dependencies: - big.js: ^5.2.2 - emojis-list: ^3.0.0 - json5: ^2.1.2 - checksum: 9078d1ed47cadc57f4c6ddbdb2add324ee7da544cea41de3b7f1128e8108fcd41cd3443a85b7ee8d7d8ac439148aa221922774efe4cf87506d4fb054d5889303 - languageName: node - linkType: hard - "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0"