@parcel/transformer-css 2.2.0 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/CSSTransformer.js +22 -33
- package/package.json +11 -10
- package/src/CSSTransformer.js +21 -7
package/lib/CSSTransformer.js
CHANGED
|
@@ -75,26 +75,6 @@ function _postcssValueParser() {
|
|
|
75
75
|
return data;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
function _postcssModules() {
|
|
79
|
-
const data = _interopRequireDefault(require("postcss-modules"));
|
|
80
|
-
|
|
81
|
-
_postcssModules = function () {
|
|
82
|
-
return data;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
return data;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function _fileSystemLoader() {
|
|
89
|
-
const data = _interopRequireDefault(require("css-modules-loader-core/lib/file-system-loader"));
|
|
90
|
-
|
|
91
|
-
_fileSystemLoader = function () {
|
|
92
|
-
return data;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
return data;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
78
|
function _semver() {
|
|
99
79
|
const data = _interopRequireDefault(require("semver"));
|
|
100
80
|
|
|
@@ -117,7 +97,7 @@ function _path() {
|
|
|
117
97
|
|
|
118
98
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
119
99
|
|
|
120
|
-
const URL_RE = /url\s*\(
|
|
100
|
+
const URL_RE = /url\s*\(/;
|
|
121
101
|
const IMPORT_RE = /@import/;
|
|
122
102
|
const COMPOSES_RE = /composes:.+from\s*("|').*("|')\s*;?/;
|
|
123
103
|
const FROM_IMPORT_RE = /.+from\s*(?:"|')(.*)(?:"|')\s*;?/;
|
|
@@ -262,14 +242,15 @@ var _default = new (_plugin().Transformer)({
|
|
|
262
242
|
parsed.walk(node => {
|
|
263
243
|
if (node.type === 'function' && node.value === 'url' && node.nodes.length > 0 && !node.nodes[0].value.startsWith('#') // IE's `behavior: url(#default#VML)`
|
|
264
244
|
) {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
245
|
+
let urlNode = node.nodes[0];
|
|
246
|
+
let url = asset.addURLDependency(urlNode.value, {
|
|
247
|
+
loc: decl.source && decl.source.start && createLoc(decl.source.start, urlNode.value, 0, decl.source.start.offset + urlNode.sourceIndex + 1, 0)
|
|
248
|
+
});
|
|
249
|
+
isDeclDirty = urlNode.value !== url;
|
|
250
|
+
urlNode.type = 'string';
|
|
251
|
+
urlNode.quote = '"';
|
|
252
|
+
urlNode.value = url;
|
|
253
|
+
}
|
|
273
254
|
});
|
|
274
255
|
|
|
275
256
|
if (isDeclDirty) {
|
|
@@ -360,11 +341,16 @@ async function compileCSSModules(asset, env, program, resolve, options) {
|
|
|
360
341
|
});
|
|
361
342
|
}
|
|
362
343
|
|
|
344
|
+
let postcssModules = await options.packageManager.require('postcss-modules', asset.filePath, {
|
|
345
|
+
range: '^4.3.0',
|
|
346
|
+
saveDev: true,
|
|
347
|
+
shouldAutoInstall: options.shouldAutoInstall
|
|
348
|
+
});
|
|
363
349
|
let {
|
|
364
350
|
root
|
|
365
|
-
} = await (0, _postcss().default)([(
|
|
351
|
+
} = await (0, _postcss().default)([postcssModules({
|
|
366
352
|
getJSON: (filename, json) => cssModules = json,
|
|
367
|
-
Loader: createLoader(asset, resolve),
|
|
353
|
+
Loader: await createLoader(asset, resolve, options),
|
|
368
354
|
generateScopedName: (name, filename) => `${name}_${(0, _hash().hashString)(_path().default.relative(options.projectRoot, filename)).substr(0, 6)}`
|
|
369
355
|
})]).process(program, {
|
|
370
356
|
from: asset.filePath,
|
|
@@ -409,8 +395,11 @@ async function compileCSSModules(asset, env, program, resolve, options) {
|
|
|
409
395
|
return assets;
|
|
410
396
|
}
|
|
411
397
|
|
|
412
|
-
function createLoader(asset, resolve) {
|
|
413
|
-
|
|
398
|
+
async function createLoader(asset, resolve, options) {
|
|
399
|
+
let {
|
|
400
|
+
default: FileSystemLoader
|
|
401
|
+
} = await options.packageManager.require('postcss-modules/build/css-loader-core/loader', asset.filePath);
|
|
402
|
+
return class extends FileSystemLoader {
|
|
414
403
|
async fetch(composesPath, relativeTo) {
|
|
415
404
|
let importPath = composesPath.replace(/^["']|["']$/g, '');
|
|
416
405
|
let resolved = await resolve(relativeTo, importPath);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@parcel/transformer-css",
|
|
3
|
-
"version": "2.2
|
|
3
|
+
"version": "2.3.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,19 +17,20 @@
|
|
|
17
17
|
"source": "src/CSSTransformer.js",
|
|
18
18
|
"engines": {
|
|
19
19
|
"node": ">= 12.0.0",
|
|
20
|
-
"parcel": "^2.2
|
|
20
|
+
"parcel": "^2.3.2"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@parcel/hash": "
|
|
24
|
-
"@parcel/plugin": "
|
|
23
|
+
"@parcel/hash": "2.3.2",
|
|
24
|
+
"@parcel/plugin": "2.3.2",
|
|
25
25
|
"@parcel/source-map": "^2.0.0",
|
|
26
|
-
"@parcel/utils": "
|
|
27
|
-
"css-modules-loader-core": "^1.1.0",
|
|
26
|
+
"@parcel/utils": "2.3.2",
|
|
28
27
|
"nullthrows": "^1.1.1",
|
|
29
|
-
"postcss": "^8.
|
|
30
|
-
"postcss-
|
|
31
|
-
"postcss-value-parser": "^4.1.0",
|
|
28
|
+
"postcss": "^8.4.5",
|
|
29
|
+
"postcss-value-parser": "^4.2.0",
|
|
32
30
|
"semver": "^5.7.1"
|
|
33
31
|
},
|
|
34
|
-
"
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"postcss-modules": "^4.3.0"
|
|
34
|
+
},
|
|
35
|
+
"gitHead": "47379bf8fabeb2cfe03ade8802d942388b153e5b"
|
|
35
36
|
}
|
package/src/CSSTransformer.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
3
|
import type {Root} from 'postcss';
|
|
4
|
-
import type {FilePath, MutableAsset} from '@parcel/types';
|
|
4
|
+
import type {FilePath, MutableAsset, PluginOptions} from '@parcel/types';
|
|
5
5
|
|
|
6
6
|
import {hashString} from '@parcel/hash';
|
|
7
7
|
import SourceMap from '@parcel/source-map';
|
|
@@ -10,12 +10,10 @@ import {createDependencyLocation, remapSourceLocation} from '@parcel/utils';
|
|
|
10
10
|
import postcss from 'postcss';
|
|
11
11
|
import nullthrows from 'nullthrows';
|
|
12
12
|
import valueParser from 'postcss-value-parser';
|
|
13
|
-
import postcssModules from 'postcss-modules';
|
|
14
|
-
import FileSystemLoader from 'css-modules-loader-core/lib/file-system-loader';
|
|
15
13
|
import semver from 'semver';
|
|
16
14
|
import path from 'path';
|
|
17
15
|
|
|
18
|
-
const URL_RE = /url\s*\(
|
|
16
|
+
const URL_RE = /url\s*\(/;
|
|
19
17
|
const IMPORT_RE = /@import/;
|
|
20
18
|
const COMPOSES_RE = /composes:.+from\s*("|').*("|')\s*;?/;
|
|
21
19
|
const FROM_IMPORT_RE = /.+from\s*(?:"|')(.*)(?:"|')\s*;?/;
|
|
@@ -185,7 +183,8 @@ export default (new Transformer({
|
|
|
185
183
|
),
|
|
186
184
|
});
|
|
187
185
|
isDeclDirty = urlNode.value !== url;
|
|
188
|
-
urlNode.type = '
|
|
186
|
+
urlNode.type = 'string';
|
|
187
|
+
urlNode.quote = '"';
|
|
189
188
|
urlNode.value = url;
|
|
190
189
|
}
|
|
191
190
|
});
|
|
@@ -273,10 +272,20 @@ async function compileCSSModules(asset, env, program, resolve, options) {
|
|
|
273
272
|
});
|
|
274
273
|
}
|
|
275
274
|
|
|
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
|
+
|
|
276
285
|
let {root} = await postcss([
|
|
277
286
|
postcssModules({
|
|
278
287
|
getJSON: (filename, json) => (cssModules = json),
|
|
279
|
-
Loader: createLoader(asset, resolve),
|
|
288
|
+
Loader: await createLoader(asset, resolve, options),
|
|
280
289
|
generateScopedName: (name, filename) =>
|
|
281
290
|
`${name}_${hashString(
|
|
282
291
|
path.relative(options.projectRoot, filename),
|
|
@@ -328,10 +337,15 @@ async function compileCSSModules(asset, env, program, resolve, options) {
|
|
|
328
337
|
return assets;
|
|
329
338
|
}
|
|
330
339
|
|
|
331
|
-
function createLoader(
|
|
340
|
+
async function createLoader(
|
|
332
341
|
asset: MutableAsset,
|
|
333
342
|
resolve: (from: FilePath, to: string) => Promise<FilePath>,
|
|
343
|
+
options: PluginOptions,
|
|
334
344
|
) {
|
|
345
|
+
let {default: FileSystemLoader} = await options.packageManager.require(
|
|
346
|
+
'postcss-modules/build/css-loader-core/loader',
|
|
347
|
+
asset.filePath,
|
|
348
|
+
);
|
|
335
349
|
return class ParcelFileSystemLoader extends FileSystemLoader {
|
|
336
350
|
async fetch(composesPath, relativeTo) {
|
|
337
351
|
let importPath = composesPath.replace(/^["']|["']$/g, '');
|