Skip to content

Commit 5b38bdf

Browse files
committedJan 31, 2022
Remove postcss-modules dependency by default
Missed in #7576
1 parent c3a28ca commit 5b38bdf

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed
 

‎packages/transformers/css/package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@
2626
"@parcel/utils": "^2.2.1",
2727
"nullthrows": "^1.1.1",
2828
"postcss": "^8.4.5",
29-
"postcss-modules": "^4.3.0",
3029
"postcss-value-parser": "^4.2.0",
3130
"semver": "^5.7.1"
31+
},
32+
"devDependencies": {
33+
"postcss-modules": "^4.3.0"
3234
}
3335
}

‎packages/transformers/css/src/CSSTransformer.js

+18-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// @flow
22

33
import type {Root} from 'postcss';
4-
import type {FilePath, MutableAsset} from '@parcel/types';
4+
import type {FilePath, MutableAsset, PluginOptions} from '@parcel/types';
55

66
import {hashString} from '@parcel/hash';
77
import SourceMap from '@parcel/source-map';
@@ -10,8 +10,6 @@ import {createDependencyLocation, remapSourceLocation} from '@parcel/utils';
1010
import postcss from 'postcss';
1111
import nullthrows from 'nullthrows';
1212
import valueParser from 'postcss-value-parser';
13-
import postcssModules from 'postcss-modules';
14-
import FileSystemLoader from 'postcss-modules/build/css-loader-core/loader';
1513
import semver from 'semver';
1614
import path from 'path';
1715

@@ -274,10 +272,20 @@ async function compileCSSModules(asset, env, program, resolve, options) {
274272
});
275273
}
276274

275+
let postcssModules = await options.packageManager.require(
276+
'postcss-modules',
277+
asset.filePath,
278+
{
279+
range: '^4.3.0',
280+
saveDev: true,
281+
shouldAutoInstall: options.shouldAutoInstall,
282+
},
283+
);
284+
277285
let {root} = await postcss([
278286
postcssModules({
279287
getJSON: (filename, json) => (cssModules = json),
280-
Loader: createLoader(asset, resolve),
288+
Loader: await createLoader(asset, resolve, options),
281289
generateScopedName: (name, filename) =>
282290
`${name}_${hashString(
283291
path.relative(options.projectRoot, filename),
@@ -329,10 +337,15 @@ async function compileCSSModules(asset, env, program, resolve, options) {
329337
return assets;
330338
}
331339

332-
function createLoader(
340+
async function createLoader(
333341
asset: MutableAsset,
334342
resolve: (from: FilePath, to: string) => Promise<FilePath>,
343+
options: PluginOptions,
335344
) {
345+
let {default: FileSystemLoader} = await options.packageManager.require(
346+
'postcss-modules/build/css-loader-core/loader',
347+
asset.filePath,
348+
);
336349
return class ParcelFileSystemLoader extends FileSystemLoader {
337350
async fetch(composesPath, relativeTo) {
338351
let importPath = composesPath.replace(/^["']|["']$/g, '');

0 commit comments

Comments
 (0)
Please sign in to comment.