@parcel/transformer-postcss 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.
@@ -35,16 +35,6 @@ function _plugin() {
35
35
  return data;
36
36
  }
37
37
 
38
- function _fileSystemLoader() {
39
- const data = _interopRequireDefault(require("css-modules-loader-core/lib/file-system-loader"));
40
-
41
- _fileSystemLoader = function () {
42
- return data;
43
- };
44
-
45
- return data;
46
- }
47
-
48
38
  function _nullthrows() {
49
39
  const data = _interopRequireDefault(require("nullthrows"));
50
40
 
@@ -85,16 +75,6 @@ function _postcssValueParser() {
85
75
  return data;
86
76
  }
87
77
 
88
- function _postcssModules() {
89
- const data = _interopRequireDefault(require("postcss-modules"));
90
-
91
- _postcssModules = function () {
92
- return data;
93
- };
94
-
95
- return data;
96
- }
97
-
98
78
  var _loadConfig = require("./loadConfig");
99
79
 
100
80
  var _constants = require("./constants");
@@ -177,10 +157,16 @@ var _default = new (_plugin().Transformer)({
177
157
  let cssModules = null;
178
158
 
179
159
  if (config.hydrated.modules) {
180
- asset.meta.cssModulesCompiled = true;
181
- plugins.push((0, _postcssModules().default)({
160
+ asset.meta.cssModulesCompiled = true; // TODO: should this be resolved from the project root?
161
+
162
+ let postcssModules = await options.packageManager.require('postcss-modules', asset.filePath, {
163
+ range: '^4.3.0',
164
+ saveDev: true,
165
+ shouldAutoInstall: options.shouldAutoInstall
166
+ });
167
+ plugins.push(postcssModules({
182
168
  getJSON: (filename, json) => cssModules = json,
183
- Loader: createLoader(asset, resolve),
169
+ Loader: await createLoader(asset, resolve, options),
184
170
  generateScopedName: (name, filename) => `${name}_${(0, _hash().hashString)(_path().default.relative(options.projectRoot, filename)).substr(0, 6)}`,
185
171
  ...config.hydrated.modules
186
172
  }));
@@ -297,8 +283,11 @@ var _default = new (_plugin().Transformer)({
297
283
 
298
284
  exports.default = _default;
299
285
 
300
- function createLoader(asset, resolve) {
301
- return class extends _fileSystemLoader().default {
286
+ async function createLoader(asset, resolve, options) {
287
+ let {
288
+ default: FileSystemLoader
289
+ } = await options.packageManager.require('postcss-modules/build/css-loader-core/loader', asset.filePath);
290
+ return class extends FileSystemLoader {
302
291
  async fetch(composesPath, relativeTo) {
303
292
  let importPath = composesPath.replace(/^["']|["']$/g, '');
304
293
  let resolved = await resolve(relativeTo, importPath);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parcel/transformer-postcss",
3
- "version": "2.2.0",
3
+ "version": "2.3.2",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,21 +17,19 @@
17
17
  "source": "src/PostCSSTransformer.js",
18
18
  "engines": {
19
19
  "node": ">= 12.0.0",
20
- "parcel": "^2.2.0"
20
+ "parcel": "^2.3.2"
21
21
  },
22
22
  "dependencies": {
23
- "@parcel/hash": "^2.2.0",
24
- "@parcel/plugin": "^2.2.0",
25
- "@parcel/utils": "^2.2.0",
23
+ "@parcel/hash": "2.3.2",
24
+ "@parcel/plugin": "2.3.2",
25
+ "@parcel/utils": "2.3.2",
26
26
  "clone": "^2.1.1",
27
- "css-modules-loader-core": "^1.1.0",
28
27
  "nullthrows": "^1.1.1",
29
- "postcss-modules": "^3.2.2",
30
- "postcss-value-parser": "^4.1.0",
28
+ "postcss-value-parser": "^4.2.0",
31
29
  "semver": "^5.7.1"
32
30
  },
33
31
  "devDependencies": {
34
- "postcss": "^8.3.0"
32
+ "postcss": "^8.4.5"
35
33
  },
36
- "gitHead": "4745cd3023f8d5a5adcf9e565d5b82d1418dc262"
34
+ "gitHead": "47379bf8fabeb2cfe03ade8802d942388b153e5b"
37
35
  }
@@ -5,12 +5,10 @@ import type {FilePath, Asset, MutableAsset, PluginOptions} from '@parcel/types';
5
5
  import {hashString} from '@parcel/hash';
6
6
  import {glob} from '@parcel/utils';
7
7
  import {Transformer} from '@parcel/plugin';
8
- import FileSystemLoader from 'css-modules-loader-core/lib/file-system-loader';
9
8
  import nullthrows from 'nullthrows';
10
9
  import path from 'path';
11
10
  import semver from 'semver';
12
11
  import valueParser from 'postcss-value-parser';
13
- import postcssModules from 'postcss-modules';
14
12
  import typeof * as Postcss from 'postcss';
15
13
 
16
14
  import {load} from './loadConfig';
@@ -79,10 +77,22 @@ export default (new Transformer({
79
77
  let cssModules: ?{|[string]: string|} = null;
80
78
  if (config.hydrated.modules) {
81
79
  asset.meta.cssModulesCompiled = true;
80
+
81
+ // TODO: should this be resolved from the project root?
82
+ let postcssModules = await options.packageManager.require(
83
+ 'postcss-modules',
84
+ asset.filePath,
85
+ {
86
+ range: '^4.3.0',
87
+ saveDev: true,
88
+ shouldAutoInstall: options.shouldAutoInstall,
89
+ },
90
+ );
91
+
82
92
  plugins.push(
83
93
  postcssModules({
84
94
  getJSON: (filename, json) => (cssModules = json),
85
- Loader: createLoader(asset, resolve),
95
+ Loader: await createLoader(asset, resolve, options),
86
96
  generateScopedName: (name, filename) =>
87
97
  `${name}_${hashString(
88
98
  path.relative(options.projectRoot, filename),
@@ -196,10 +206,15 @@ export default (new Transformer({
196
206
  },
197
207
  }): Transformer);
198
208
 
199
- function createLoader(
209
+ async function createLoader(
200
210
  asset: MutableAsset,
201
211
  resolve: (from: FilePath, to: string) => Promise<FilePath>,
212
+ options: PluginOptions,
202
213
  ) {
214
+ let {default: FileSystemLoader} = await options.packageManager.require(
215
+ 'postcss-modules/build/css-loader-core/loader',
216
+ asset.filePath,
217
+ );
203
218
  return class ParcelFileSystemLoader extends FileSystemLoader {
204
219
  async fetch(composesPath, relativeTo) {
205
220
  let importPath = composesPath.replace(/^["']|["']$/g, '');