sass-loader 11.1.0 → 12.2.0
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/README.md +37 -4
- package/dist/options.json +18 -6
- package/dist/utils.js +93 -25
- package/package.json +25 -24
- package/CHANGELOG.md +0 -575
package/README.md
CHANGED
|
@@ -121,7 +121,7 @@ Thankfully there are a two solutions to this problem:
|
|
|
121
121
|
|
|
122
122
|
| Name | Type | Default | Description |
|
|
123
123
|
| :---------------------------------------: | :------------------: | :-------------------------------------: | :---------------------------------------------------------------- |
|
|
124
|
-
| **[`implementation`](#implementation)** |
|
|
124
|
+
| **[`implementation`](#implementation)** | `{Object\|String}` | `sass` | Setup Sass implementation to use. |
|
|
125
125
|
| **[`sassOptions`](#sassoptions)** | `{Object\|Function}` | defaults values for Sass implementation | Options for Sass. |
|
|
126
126
|
| **[`sourceMap`](#sourcemap)** | `{Boolean}` | `compiler.devtool` | Enables/Disables generation of source maps. |
|
|
127
127
|
| **[`additionalData`](#additionaldata)** | `{String\|Function}` | `undefined` | Prepends/Appends `Sass`/`SCSS` code before the actual entry file. |
|
|
@@ -129,7 +129,7 @@ Thankfully there are a two solutions to this problem:
|
|
|
129
129
|
|
|
130
130
|
### `implementation`
|
|
131
131
|
|
|
132
|
-
Type: `Object`
|
|
132
|
+
Type: `Object | String`
|
|
133
133
|
Default: `sass`
|
|
134
134
|
|
|
135
135
|
The special `implementation` option determines which implementation of Sass to use.
|
|
@@ -168,6 +168,8 @@ In order to avoid this situation you can use the `implementation` option.
|
|
|
168
168
|
|
|
169
169
|
The `implementation` options either accepts `sass` (`Dart Sass`) or `node-sass` as a module.
|
|
170
170
|
|
|
171
|
+
#### Object
|
|
172
|
+
|
|
171
173
|
For example, to use Dart Sass, you'd pass:
|
|
172
174
|
|
|
173
175
|
```js
|
|
@@ -193,10 +195,39 @@ module.exports = {
|
|
|
193
195
|
};
|
|
194
196
|
```
|
|
195
197
|
|
|
198
|
+
#### String
|
|
199
|
+
|
|
200
|
+
For example, to use Dart Sass, you'd pass:
|
|
201
|
+
|
|
202
|
+
```js
|
|
203
|
+
module.exports = {
|
|
204
|
+
module: {
|
|
205
|
+
rules: [
|
|
206
|
+
{
|
|
207
|
+
test: /\.s[ac]ss$/i,
|
|
208
|
+
use: [
|
|
209
|
+
"style-loader",
|
|
210
|
+
"css-loader",
|
|
211
|
+
{
|
|
212
|
+
loader: "sass-loader",
|
|
213
|
+
options: {
|
|
214
|
+
// Prefer `dart-sass`
|
|
215
|
+
implementation: require.resolve("sass"),
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
],
|
|
219
|
+
},
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
```
|
|
224
|
+
|
|
196
225
|
Note that when using `sass` (`Dart Sass`), **synchronous compilation is twice as fast as asynchronous compilation** by default, due to the overhead of asynchronous callbacks.
|
|
197
226
|
To avoid this overhead, you can use the [fibers](https://www.npmjs.com/package/fibers) package to call asynchronous importers from the synchronous code path.
|
|
198
227
|
|
|
199
|
-
We automatically inject the [`fibers`](https://github.com/laverdet/node-fibers) package (setup `sassOptions.fiber`) if is possible (i.e. you need install the [`fibers`](https://github.com/laverdet/node-fibers) package).
|
|
228
|
+
We automatically inject the [`fibers`](https://github.com/laverdet/node-fibers) package (setup `sassOptions.fiber`) for `Node.js` less v16.0.0 if is possible (i.e. you need install the [`fibers`](https://github.com/laverdet/node-fibers) package).
|
|
229
|
+
|
|
230
|
+
> Fibers is not compatible with `Node.js` v16.0.0 or later ([see introduction to readme](https://github.com/laverdet/node-fibers)).
|
|
200
231
|
|
|
201
232
|
**package.json**
|
|
202
233
|
|
|
@@ -275,11 +306,13 @@ Default: defaults values for Sass implementation
|
|
|
275
306
|
|
|
276
307
|
Options for [Dart Sass](http://sass-lang.com/dart-sass) or [Node Sass](https://github.com/sass/node-sass) implementation.
|
|
277
308
|
|
|
309
|
+
> ℹ️ The `charset` option has `true` value by default for `dart-sass`, we strongly discourage change value to `false`, because webpack doesn't support files other than `utf-8`.
|
|
310
|
+
|
|
278
311
|
> ℹ️ The `indentedSyntax` option has `true` value for the `sass` extension.
|
|
279
312
|
|
|
280
313
|
> ℹ️ Options such as `data` and `file` are unavailable and will be ignored.
|
|
281
314
|
|
|
282
|
-
> ℹ We
|
|
315
|
+
> ℹ We strongly discourage change `outFile`, `sourceMapContents`, `sourceMapEmbed`, `sourceMapRoot` options because `sass-loader` automatically sets these options when the `sourceMap` option is `true`.
|
|
283
316
|
|
|
284
317
|
> ℹ️ Access to the [loader context](https://webpack.js.org/api/loaders/#the-loader-context) inside the custom importer can be done using the `this.webpackLoaderContext` property.
|
|
285
318
|
|
package/dist/options.json
CHANGED
|
@@ -3,11 +3,20 @@
|
|
|
3
3
|
"type": "object",
|
|
4
4
|
"properties": {
|
|
5
5
|
"implementation": {
|
|
6
|
-
"description": "The implementation of the sass to be used
|
|
7
|
-
"
|
|
6
|
+
"description": "The implementation of the sass to be used.",
|
|
7
|
+
"link": "https://github.com/webpack-contrib/sass-loader#implementation",
|
|
8
|
+
"anyOf": [
|
|
9
|
+
{
|
|
10
|
+
"type": "string"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"type": "object"
|
|
14
|
+
}
|
|
15
|
+
]
|
|
8
16
|
},
|
|
9
17
|
"sassOptions": {
|
|
10
|
-
"description": "Options for `node-sass` or `sass` (`Dart Sass`) implementation.
|
|
18
|
+
"description": "Options for `node-sass` or `sass` (`Dart Sass`) implementation.",
|
|
19
|
+
"link": "https://github.com/webpack-contrib/sass-loader#sassoptions",
|
|
11
20
|
"anyOf": [
|
|
12
21
|
{
|
|
13
22
|
"type": "object",
|
|
@@ -19,7 +28,8 @@
|
|
|
19
28
|
]
|
|
20
29
|
},
|
|
21
30
|
"additionalData": {
|
|
22
|
-
"description": "Prepends/Appends `Sass`/`SCSS` code before the actual entry file
|
|
31
|
+
"description": "Prepends/Appends `Sass`/`SCSS` code before the actual entry file.",
|
|
32
|
+
"link": "https://github.com/webpack-contrib/sass-loader#additionaldata",
|
|
23
33
|
"anyOf": [
|
|
24
34
|
{
|
|
25
35
|
"type": "string"
|
|
@@ -30,11 +40,13 @@
|
|
|
30
40
|
]
|
|
31
41
|
},
|
|
32
42
|
"sourceMap": {
|
|
33
|
-
"description": "Enables/Disables generation of source maps
|
|
43
|
+
"description": "Enables/Disables generation of source maps.",
|
|
44
|
+
"link": "https://github.com/webpack-contrib/sass-loader#sourcemap",
|
|
34
45
|
"type": "boolean"
|
|
35
46
|
},
|
|
36
47
|
"webpackImporter": {
|
|
37
|
-
"description": "Enables/Disables default `webpack` importer
|
|
48
|
+
"description": "Enables/Disables default `webpack` importer.",
|
|
49
|
+
"link": "https://github.com/webpack-contrib/sass-loader#webpackimporter",
|
|
38
50
|
"type": "boolean"
|
|
39
51
|
}
|
|
40
52
|
},
|
package/dist/utils.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.getWebpackResolver = getWebpackResolver;
|
|
|
9
9
|
exports.getWebpackImporter = getWebpackImporter;
|
|
10
10
|
exports.getRenderFunctionFromSassImplementation = getRenderFunctionFromSassImplementation;
|
|
11
11
|
exports.normalizeSourceMap = normalizeSourceMap;
|
|
12
|
+
exports.isSupportedFibers = isSupportedFibers;
|
|
12
13
|
|
|
13
14
|
var _url = _interopRequireDefault(require("url"));
|
|
14
15
|
|
|
@@ -39,9 +40,7 @@ function getDefaultSassImplementation() {
|
|
|
39
40
|
return require(sassImplPkg);
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
|
-
*
|
|
43
|
-
* This function is not Webpack-specific and can be used by tools wishing to
|
|
44
|
-
* mimic `sass-loader`'s behaviour, so its signature should not be changed.
|
|
43
|
+
* This function is not Webpack-specific and can be used by tools wishing to mimic `sass-loader`'s behaviour, so its signature should not be changed.
|
|
45
44
|
*/
|
|
46
45
|
|
|
47
46
|
|
|
@@ -57,6 +56,17 @@ function getSassImplementation(loaderContext, implementation) {
|
|
|
57
56
|
}
|
|
58
57
|
}
|
|
59
58
|
|
|
59
|
+
if (typeof resolvedImplementation === "string") {
|
|
60
|
+
try {
|
|
61
|
+
// eslint-disable-next-line import/no-dynamic-require, global-require
|
|
62
|
+
resolvedImplementation = require(resolvedImplementation);
|
|
63
|
+
} catch (error) {
|
|
64
|
+
loaderContext.emitError(error); // eslint-disable-next-line consistent-return
|
|
65
|
+
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
60
70
|
const {
|
|
61
71
|
info
|
|
62
72
|
} = resolvedImplementation;
|
|
@@ -85,6 +95,11 @@ function getSassImplementation(loaderContext, implementation) {
|
|
|
85
95
|
|
|
86
96
|
loaderContext.emitError(new Error(`Unknown Sass implementation "${implementationName}".`));
|
|
87
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* @param {any} loaderContext
|
|
100
|
+
* @returns {boolean}
|
|
101
|
+
*/
|
|
102
|
+
|
|
88
103
|
|
|
89
104
|
function isProductionLikeMode(loaderContext) {
|
|
90
105
|
return loaderContext.mode === "production" || !loaderContext.mode;
|
|
@@ -92,10 +107,17 @@ function isProductionLikeMode(loaderContext) {
|
|
|
92
107
|
|
|
93
108
|
function proxyCustomImporters(importers, loaderContext) {
|
|
94
109
|
return [].concat(importers).map(importer => function proxyImporter(...args) {
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
const self = { ...this,
|
|
111
|
+
webpackLoaderContext: loaderContext
|
|
112
|
+
};
|
|
113
|
+
return importer.apply(self, args);
|
|
97
114
|
});
|
|
98
115
|
}
|
|
116
|
+
|
|
117
|
+
function isSupportedFibers() {
|
|
118
|
+
const [nodeVersion] = process.versions.node.split(".");
|
|
119
|
+
return Number(nodeVersion) < 16;
|
|
120
|
+
}
|
|
99
121
|
/**
|
|
100
122
|
* Derives the sass options from the loader context and normalizes its values with sane defaults.
|
|
101
123
|
*
|
|
@@ -112,7 +134,7 @@ async function getSassOptions(loaderContext, loaderOptions, content, implementat
|
|
|
112
134
|
const options = (0, _full.klona)(loaderOptions.sassOptions ? typeof loaderOptions.sassOptions === "function" ? loaderOptions.sassOptions(loaderContext) || {} : loaderOptions.sassOptions : {});
|
|
113
135
|
const isDartSass = implementation.info.includes("dart-sass");
|
|
114
136
|
|
|
115
|
-
if (isDartSass) {
|
|
137
|
+
if (isDartSass && isSupportedFibers()) {
|
|
116
138
|
const shouldTryToResolveFibers = !options.fiber && options.fiber !== false;
|
|
117
139
|
|
|
118
140
|
if (shouldTryToResolveFibers) {
|
|
@@ -139,7 +161,7 @@ async function getSassOptions(loaderContext, loaderOptions, content, implementat
|
|
|
139
161
|
options.file = loaderContext.resourcePath;
|
|
140
162
|
options.data = loaderOptions.additionalData ? typeof loaderOptions.additionalData === "function" ? await loaderOptions.additionalData(content, loaderContext) : `${loaderOptions.additionalData}\n${content}` : content; // opt.outputStyle
|
|
141
163
|
|
|
142
|
-
if (
|
|
164
|
+
if (typeof options.outputStyle === "undefined" && isProductionLikeMode(loaderContext)) {
|
|
143
165
|
options.outputStyle = "compressed";
|
|
144
166
|
}
|
|
145
167
|
|
|
@@ -174,6 +196,11 @@ async function getSassOptions(loaderContext, loaderOptions, content, implementat
|
|
|
174
196
|
options.importer = options.importer ? proxyCustomImporters(Array.isArray(options.importer) ? options.importer : [options.importer], loaderContext) : [];
|
|
175
197
|
options.includePaths = [].concat(process.cwd()).concat( // We use `includePaths` in context for resolver, so it should be always absolute
|
|
176
198
|
(options.includePaths || []).map(includePath => _path.default.isAbsolute(includePath) ? includePath : _path.default.join(process.cwd(), includePath))).concat(process.env.SASS_PATH ? process.env.SASS_PATH.split(process.platform === "win32" ? ";" : ":") : []);
|
|
199
|
+
|
|
200
|
+
if (typeof options.charset === "undefined") {
|
|
201
|
+
options.charset = true;
|
|
202
|
+
}
|
|
203
|
+
|
|
177
204
|
return options;
|
|
178
205
|
}
|
|
179
206
|
|
|
@@ -197,12 +224,12 @@ const IS_MODULE_IMPORT = /^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/
|
|
|
197
224
|
*
|
|
198
225
|
* @param {string} url
|
|
199
226
|
* @param {boolean} forWebpackResolver
|
|
200
|
-
* @param {
|
|
227
|
+
* @param {boolean} fromImport
|
|
201
228
|
* @returns {Array<string>}
|
|
202
229
|
*/
|
|
203
230
|
|
|
204
231
|
function getPossibleRequests( // eslint-disable-next-line no-shadow
|
|
205
|
-
url, forWebpackResolver = false) {
|
|
232
|
+
url, forWebpackResolver = false, fromImport = false) {
|
|
206
233
|
let request = url; // In case there is module request, send this to webpack resolver
|
|
207
234
|
|
|
208
235
|
if (forWebpackResolver) {
|
|
@@ -218,7 +245,7 @@ url, forWebpackResolver = false) {
|
|
|
218
245
|
// @see https://github.com/webpack-contrib/sass-loader/issues/167
|
|
219
246
|
|
|
220
247
|
|
|
221
|
-
const
|
|
248
|
+
const extension = _path.default.extname(request).toLowerCase(); // Because @import is also defined in CSS, Sass needs a way of compiling plain CSS @imports without trying to import the files at compile time.
|
|
222
249
|
// To accomplish this, and to ensure SCSS is as much of a superset of CSS as possible, Sass will compile any @imports with the following characteristics to plain CSS imports:
|
|
223
250
|
// - imports where the URL ends with .css.
|
|
224
251
|
// - imports where the URL begins http:// or https://.
|
|
@@ -228,15 +255,19 @@ url, forWebpackResolver = false) {
|
|
|
228
255
|
// The `node-sass` package sends `@import` ending on `.css` to importer, it is bug, so we skip resolve
|
|
229
256
|
|
|
230
257
|
|
|
231
|
-
if (
|
|
258
|
+
if (extension === ".css") {
|
|
232
259
|
return [];
|
|
233
260
|
}
|
|
234
261
|
|
|
235
262
|
const dirname = _path.default.dirname(request);
|
|
236
263
|
|
|
264
|
+
const normalizedDirname = dirname === "." ? "" : `${dirname}/`;
|
|
265
|
+
|
|
237
266
|
const basename = _path.default.basename(request);
|
|
238
267
|
|
|
239
|
-
|
|
268
|
+
const basenameWithoutExtension = _path.default.basename(request, extension);
|
|
269
|
+
|
|
270
|
+
return [...new Set([].concat(fromImport ? [`${normalizedDirname}_${basenameWithoutExtension}.import${extension}`, `${normalizedDirname}${basenameWithoutExtension}.import${extension}`] : []).concat([`${normalizedDirname}_${basename}`, `${normalizedDirname}${basename}`]).concat(forWebpackResolver ? [url] : []))];
|
|
240
271
|
}
|
|
241
272
|
|
|
242
273
|
function promiseResolve(callbackResolve) {
|
|
@@ -307,8 +338,16 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
307
338
|
}
|
|
308
339
|
}
|
|
309
340
|
|
|
310
|
-
const isDartSass = implementation.info.includes("dart-sass");
|
|
311
|
-
|
|
341
|
+
const isDartSass = implementation.info.includes("dart-sass"); // We only have one difference with the built-in sass resolution logic and out resolution logic:
|
|
342
|
+
// First, we look at the files starting with `_`, then without `_` (i.e. `_name.sass`, `_name.scss`, `_name.css`, `name.sass`, `name.scss`, `name.css`),
|
|
343
|
+
// although `sass` look together by extensions (i.e. `_name.sass`/`name.sass`/`_name.scss`/`name.scss`/`_name.css`/`name.css`).
|
|
344
|
+
// It shouldn't be a problem because `sass` throw errors:
|
|
345
|
+
// - on having `_name.sass` and `name.sass` (extension can be `sass`, `scss` or `css`) in the same directory
|
|
346
|
+
// - on having `_name.sass` and `_name.scss` in the same directory
|
|
347
|
+
//
|
|
348
|
+
// Also `sass` prefer `sass`/`scss` over `css`.
|
|
349
|
+
|
|
350
|
+
const sassModuleResolve = promiseResolve(resolverFactory({
|
|
312
351
|
alias: [],
|
|
313
352
|
aliasFields: [],
|
|
314
353
|
conditionNames: [],
|
|
@@ -321,7 +360,20 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
321
360
|
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
322
361
|
preferRelative: true
|
|
323
362
|
}));
|
|
324
|
-
const
|
|
363
|
+
const sassImportResolve = promiseResolve(resolverFactory({
|
|
364
|
+
alias: [],
|
|
365
|
+
aliasFields: [],
|
|
366
|
+
conditionNames: [],
|
|
367
|
+
descriptionFiles: [],
|
|
368
|
+
extensions: [".sass", ".scss", ".css"],
|
|
369
|
+
exportsFields: [],
|
|
370
|
+
mainFields: [],
|
|
371
|
+
mainFiles: ["_index.import", "_index", "index.import", "index"],
|
|
372
|
+
modules: [],
|
|
373
|
+
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
374
|
+
preferRelative: true
|
|
375
|
+
}));
|
|
376
|
+
const webpackModuleResolve = promiseResolve(resolverFactory({
|
|
325
377
|
dependencyType: "sass",
|
|
326
378
|
conditionNames: ["sass", "style"],
|
|
327
379
|
mainFields: ["sass", "style", "main", "..."],
|
|
@@ -330,7 +382,16 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
330
382
|
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
331
383
|
preferRelative: true
|
|
332
384
|
}));
|
|
333
|
-
|
|
385
|
+
const webpackImportResolve = promiseResolve(resolverFactory({
|
|
386
|
+
dependencyType: "sass",
|
|
387
|
+
conditionNames: ["sass", "style"],
|
|
388
|
+
mainFields: ["sass", "style", "main", "..."],
|
|
389
|
+
mainFiles: ["_index.import", "_index", "index.import", "index", "..."],
|
|
390
|
+
extensions: [".sass", ".scss", ".css"],
|
|
391
|
+
restrictions: [/\.((sa|sc|c)ss)$/i],
|
|
392
|
+
preferRelative: true
|
|
393
|
+
}));
|
|
394
|
+
return (context, request, fromImport) => {
|
|
334
395
|
// See https://github.com/webpack/webpack/issues/12340
|
|
335
396
|
// Because `node-sass` calls our importer before `1. Filesystem imports relative to the base file.`
|
|
336
397
|
// custom importer may not return `{ file: '/path/to/name.ext' }` and therefore our `context` will be relative
|
|
@@ -369,11 +430,11 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
369
430
|
// 5. Filesystem imports relative to a `SASS_PATH` path.
|
|
370
431
|
//
|
|
371
432
|
// `sass` run custom importers before `3`, `4` and `5` points, we need to emulate this behavior to avoid wrong resolution.
|
|
372
|
-
const sassPossibleRequests = getPossibleRequests(request); // `node-sass` calls our importer before `1. Filesystem imports relative to the base file.`, so we need emulate this too
|
|
433
|
+
const sassPossibleRequests = getPossibleRequests(request, false, fromImport); // `node-sass` calls our importer before `1. Filesystem imports relative to the base file.`, so we need emulate this too
|
|
373
434
|
|
|
374
435
|
if (!isDartSass) {
|
|
375
436
|
resolutionMap = resolutionMap.concat({
|
|
376
|
-
resolve:
|
|
437
|
+
resolve: fromImport ? sassImportResolve : sassModuleResolve,
|
|
377
438
|
context: _path.default.dirname(context),
|
|
378
439
|
possibleRequests: sassPossibleRequests
|
|
379
440
|
});
|
|
@@ -382,16 +443,16 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
382
443
|
resolutionMap = resolutionMap.concat( // eslint-disable-next-line no-shadow
|
|
383
444
|
includePaths.map(context => {
|
|
384
445
|
return {
|
|
385
|
-
resolve:
|
|
446
|
+
resolve: fromImport ? sassImportResolve : sassModuleResolve,
|
|
386
447
|
context,
|
|
387
448
|
possibleRequests: sassPossibleRequests
|
|
388
449
|
};
|
|
389
450
|
}));
|
|
390
451
|
}
|
|
391
452
|
|
|
392
|
-
const webpackPossibleRequests = getPossibleRequests(request, true);
|
|
453
|
+
const webpackPossibleRequests = getPossibleRequests(request, true, fromImport);
|
|
393
454
|
resolutionMap = resolutionMap.concat({
|
|
394
|
-
resolve:
|
|
455
|
+
resolve: fromImport ? webpackImportResolve : webpackModuleResolve,
|
|
395
456
|
context: _path.default.dirname(context),
|
|
396
457
|
possibleRequests: webpackPossibleRequests
|
|
397
458
|
});
|
|
@@ -399,19 +460,22 @@ function getWebpackResolver(resolverFactory, implementation, includePaths = [])
|
|
|
399
460
|
};
|
|
400
461
|
}
|
|
401
462
|
|
|
402
|
-
const
|
|
463
|
+
const MATCH_CSS = /\.css$/i;
|
|
403
464
|
|
|
404
465
|
function getWebpackImporter(loaderContext, implementation, includePaths) {
|
|
405
466
|
const resolve = getWebpackResolver(loaderContext.getResolve, implementation, includePaths);
|
|
406
|
-
return (originalUrl, prev, done)
|
|
407
|
-
|
|
467
|
+
return function importer(originalUrl, prev, done) {
|
|
468
|
+
const {
|
|
469
|
+
fromImport
|
|
470
|
+
} = this;
|
|
471
|
+
resolve(prev, originalUrl, fromImport).then(result => {
|
|
408
472
|
// Add the result as dependency.
|
|
409
473
|
// Although we're also using stats.includedFiles, this might come in handy when an error occurs.
|
|
410
474
|
// In this case, we don't get stats.includedFiles from node-sass/sass.
|
|
411
475
|
loaderContext.addDependency(_path.default.normalize(result)); // By removing the CSS file extension, we trigger node-sass to include the CSS file instead of just linking it.
|
|
412
476
|
|
|
413
477
|
done({
|
|
414
|
-
file: result.replace(
|
|
478
|
+
file: result.replace(MATCH_CSS, "")
|
|
415
479
|
});
|
|
416
480
|
}) // Catch all resolving errors, return the original file and pass responsibility back to other custom importers
|
|
417
481
|
.catch(() => {
|
|
@@ -449,6 +513,10 @@ function getRenderFunctionFromSassImplementation(implementation) {
|
|
|
449
513
|
}
|
|
450
514
|
|
|
451
515
|
const ABSOLUTE_SCHEME = /^[A-Za-z0-9+\-.]+:/;
|
|
516
|
+
/**
|
|
517
|
+
* @param {string} source
|
|
518
|
+
* @returns {"absolute" | "scheme-relative" | "path-absolute" | "path-absolute"}
|
|
519
|
+
*/
|
|
452
520
|
|
|
453
521
|
function getURLType(source) {
|
|
454
522
|
if (source[0] === "/") {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sass-loader",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.2.0",
|
|
4
4
|
"description": "Sass loader for webpack",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "webpack-contrib/sass-loader",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"main": "dist/cjs.js",
|
|
15
15
|
"engines": {
|
|
16
|
-
"node": ">=
|
|
16
|
+
"node": ">= 12.13.0"
|
|
17
17
|
},
|
|
18
18
|
"scripts": {
|
|
19
19
|
"start": "npm run build -- -w",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"prebuild": "npm run clean",
|
|
22
22
|
"build": "cross-env NODE_ENV=production babel src -d dist --copy-files",
|
|
23
23
|
"commitlint": "commitlint --from=master",
|
|
24
|
-
"security": "npm audit",
|
|
24
|
+
"security": "npm audit --production",
|
|
25
25
|
"lint:prettier": "prettier --list-different .",
|
|
26
26
|
"lint:js": "eslint --cache .",
|
|
27
27
|
"lint": "npm-run-all -l -p \"lint:**\"",
|
|
@@ -59,40 +59,41 @@
|
|
|
59
59
|
"neo-async": "^2.6.2"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@babel/cli": "^7.
|
|
63
|
-
"@babel/core": "^7.14.
|
|
64
|
-
"@babel/preset-env": "^7.14.
|
|
65
|
-
"@commitlint/cli": "^
|
|
66
|
-
"@commitlint/config-conventional": "^
|
|
62
|
+
"@babel/cli": "^7.14.5",
|
|
63
|
+
"@babel/core": "^7.14.6",
|
|
64
|
+
"@babel/preset-env": "^7.14.7",
|
|
65
|
+
"@commitlint/cli": "^13.1.0",
|
|
66
|
+
"@commitlint/config-conventional": "^13.1.0",
|
|
67
67
|
"@webpack-contrib/eslint-config-webpack": "^3.0.0",
|
|
68
|
-
"babel-jest": "^
|
|
69
|
-
"bootstrap": "^4.5.3",
|
|
68
|
+
"babel-jest": "^27.0.6",
|
|
70
69
|
"bootstrap-sass": "^3.4.1",
|
|
70
|
+
"bootstrap-v4": "npm:bootstrap@^4.5.3",
|
|
71
|
+
"bootstrap-v5": "npm:bootstrap@^5.0.1",
|
|
71
72
|
"cross-env": "^7.0.3",
|
|
72
|
-
"css-loader": "^
|
|
73
|
+
"css-loader": "^6.2.0",
|
|
73
74
|
"del": "^6.0.0",
|
|
74
|
-
"del-cli": "^
|
|
75
|
-
"enhanced-resolve": "^5.8.
|
|
76
|
-
"eslint": "^7.
|
|
75
|
+
"del-cli": "^4.0.1",
|
|
76
|
+
"enhanced-resolve": "^5.8.2",
|
|
77
|
+
"eslint": "^7.30.0",
|
|
77
78
|
"eslint-config-prettier": "^8.3.0",
|
|
78
|
-
"eslint-plugin-import": "^2.
|
|
79
|
+
"eslint-plugin-import": "^2.23.3",
|
|
79
80
|
"fibers": "^5.0.0",
|
|
80
81
|
"file-loader": "^6.2.0",
|
|
81
82
|
"foundation-sites": "^6.6.3",
|
|
82
|
-
"husky": "^
|
|
83
|
-
"jest": "^
|
|
84
|
-
"lint-staged": "^11.0.
|
|
83
|
+
"husky": "^7.0.1",
|
|
84
|
+
"jest": "^27.0.6",
|
|
85
|
+
"lint-staged": "^11.0.1",
|
|
85
86
|
"material-components-web": "^8.0.0",
|
|
86
87
|
"memfs": "^3.2.2",
|
|
87
|
-
"node-sass": "^
|
|
88
|
+
"node-sass": "^6.0.1",
|
|
88
89
|
"node-sass-glob-importer": "^5.3.2",
|
|
89
90
|
"npm-run-all": "^4.1.5",
|
|
90
|
-
"prettier": "^2.3.
|
|
91
|
-
"sass": "^1.
|
|
91
|
+
"prettier": "^2.3.2",
|
|
92
|
+
"sass": "^1.35.2",
|
|
92
93
|
"semver": "^7.3.5",
|
|
93
|
-
"standard-version": "^9.3.
|
|
94
|
-
"style-loader": "^2.
|
|
95
|
-
"webpack": "^5.
|
|
94
|
+
"standard-version": "^9.3.1",
|
|
95
|
+
"style-loader": "^3.2.1",
|
|
96
|
+
"webpack": "^5.45.1"
|
|
96
97
|
},
|
|
97
98
|
"keywords": [
|
|
98
99
|
"sass",
|
package/CHANGELOG.md
DELETED
|
@@ -1,575 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
-
|
|
5
|
-
## [11.1.0](https://github.com/webpack-contrib/sass-loader/compare/v11.0.1...v11.1.0) (2021-05-10)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
### Features
|
|
9
|
-
|
|
10
|
-
* support `node-sass` v6.0.0 ([#947](https://github.com/webpack-contrib/sass-loader/issues/947)) ([7869b29](https://github.com/webpack-contrib/sass-loader/commit/7869b29916d5120037a0e67063420b3333d7f68b))
|
|
11
|
-
|
|
12
|
-
### [11.0.1](https://github.com/webpack-contrib/sass-loader/compare/v11.0.0...v11.0.1) (2021-02-08)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
### Bug Fixes
|
|
16
|
-
|
|
17
|
-
* compatibility with custom importers for `node-sass` ([#927](https://github.com/webpack-contrib/sass-loader/issues/927)) ([af5a072](https://github.com/webpack-contrib/sass-loader/commit/af5a072c5170f96f3d0643dec658248d98f65ff7))
|
|
18
|
-
|
|
19
|
-
## [11.0.0](https://github.com/webpack-contrib/sass-loader/compare/v10.1.1...v11.0.0) (2021-02-05)
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
### Notes
|
|
23
|
-
|
|
24
|
-
* using `~` is deprecated and can be removed from your code (**we recommend it**), but we still support it for historical reasons.
|
|
25
|
-
|
|
26
|
-
Why you can removed it?
|
|
27
|
-
The loader will first try to resolve `@import`/`@use` as relative, if it cannot be resolved, the loader will try to resolve `@import`/`@use` inside [`node_modules`](https://webpack.js.org/configuration/resolve/#resolve-modules).
|
|
28
|
-
Using `~` means looking for files in [`node_modules`](https://webpack.js.org/configuration/resolve/#resolve-modules) or `resolve.alias` or `resolve.fallback`.
|
|
29
|
-
|
|
30
|
-
### ⚠ BREAKING CHANGES
|
|
31
|
-
|
|
32
|
-
* minimum supported `webpack` version is `5`
|
|
33
|
-
|
|
34
|
-
### Features
|
|
35
|
-
|
|
36
|
-
* supported the [`resolve.byDependency`](https://webpack.js.org/configuration/resolve/#resolvebydependency) option, you can setup `{ resolve: { byDependency: { sass: { mainFiles: ['custom', '...'] } } } }`
|
|
37
|
-
|
|
38
|
-
### [10.1.1](https://github.com/webpack-contrib/sass-loader/compare/v10.1.0...v10.1.1) (2021-01-11)
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
### Bug Fixes
|
|
42
|
-
|
|
43
|
-
* problem with resolving and the `includePaths` option ([#913](https://github.com/webpack-contrib/sass-loader/issues/913)) ([cadc75e](https://github.com/webpack-contrib/sass-loader/commit/cadc75e80caf7d32ea47de1cbaab639f9204c0eb))
|
|
44
|
-
|
|
45
|
-
## [10.1.0](https://github.com/webpack-contrib/sass-loader/compare/v10.0.5...v10.1.0) (2020-11-11)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
### Features
|
|
49
|
-
|
|
50
|
-
* allow the `additionalData` to be async ([#902](https://github.com/webpack-contrib/sass-loader/issues/902)) ([9d925ff](https://github.com/webpack-contrib/sass-loader/commit/9d925ff794e1e4cb9db253a6867bfa2405ec3428))
|
|
51
|
-
|
|
52
|
-
### [10.0.5](https://github.com/webpack-contrib/sass-loader/compare/v10.0.4...v10.0.5) (2020-11-02)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
### Bug Fixes
|
|
56
|
-
|
|
57
|
-
* support node-sass v5.0.0 ([#899](https://github.com/webpack-contrib/sass-loader/issues/899)) ([c3e279f](https://github.com/webpack-contrib/sass-loader/commit/c3e279fb4668fce4c597a6c8cd1d0f2ff8bc95e5))
|
|
58
|
-
|
|
59
|
-
### [10.0.4](https://github.com/webpack-contrib/sass-loader/compare/v10.0.3...v10.0.4) (2020-10-22)
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
### Bug Fixes
|
|
63
|
-
|
|
64
|
-
* compatibility with the filesystem cache ([#896](https://github.com/webpack-contrib/sass-loader/issues/896)) ([e31f9b6](https://github.com/webpack-contrib/sass-loader/commit/e31f9b682f62e957fd2075582c3cf6cf0daf6b52))
|
|
65
|
-
|
|
66
|
-
### [10.0.3](https://github.com/webpack-contrib/sass-loader/compare/v10.0.2...v10.0.3) (2020-10-09)
|
|
67
|
-
|
|
68
|
-
### Chore
|
|
69
|
-
|
|
70
|
-
* update `schema-utils`
|
|
71
|
-
|
|
72
|
-
### [10.0.2](https://github.com/webpack-contrib/sass-loader/compare/v10.0.1...v10.0.2) (2020-09-03)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
### Bug Fixes
|
|
76
|
-
|
|
77
|
-
* source maps generation ([#886](https://github.com/webpack-contrib/sass-loader/issues/886)) ([8327d55](https://github.com/webpack-contrib/sass-loader/commit/8327d55df9e8fc6e24d2759d7bd50174ed1ff1e4))
|
|
78
|
-
|
|
79
|
-
### [10.0.1](https://github.com/webpack-contrib/sass-loader/compare/v10.0.0...v10.0.1) (2020-08-25)
|
|
80
|
-
|
|
81
|
-
### Chore
|
|
82
|
-
|
|
83
|
-
* update deps
|
|
84
|
-
|
|
85
|
-
## [10.0.0](https://github.com/webpack-contrib/sass-loader/compare/v10.0.0-rc.0...v10.0.0) (2020-08-24)
|
|
86
|
-
|
|
87
|
-
### Bug Fixes
|
|
88
|
-
|
|
89
|
-
* handle absolute windows path in source maps
|
|
90
|
-
|
|
91
|
-
## [10.0.0-rc.0](https://github.com/webpack-contrib/sass-loader/compare/v9.0.3...v10.0.0-rc.0) (2020-08-24)
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
### ⚠ BREAKING CHANGES
|
|
95
|
-
|
|
96
|
-
* loader generates absolute `sources` in source maps, also avoids modifying `sass` source maps if the `sourceMap` option is `false`
|
|
97
|
-
|
|
98
|
-
### [9.0.3](https://github.com/webpack-contrib/sass-loader/compare/v9.0.2...v9.0.3) (2020-08-05)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
### Bug Fixes
|
|
102
|
-
|
|
103
|
-
* resolution algorithm ([#875](https://github.com/webpack-contrib/sass-loader/issues/875)) ([ea73cfa](https://github.com/webpack-contrib/sass-loader/commit/ea73cfab047c751e1055d0c2ec58ef503f7dbe36))
|
|
104
|
-
|
|
105
|
-
### [9.0.2](https://github.com/webpack-contrib/sass-loader/compare/v9.0.1...v9.0.2) (2020-07-07)
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
### Bug Fixes
|
|
109
|
-
|
|
110
|
-
* resolution algorithm for `node-sass` ([#866](https://github.com/webpack-contrib/sass-loader/issues/866)) ([4584c90](https://github.com/webpack-contrib/sass-loader/commit/4584c9054befbc56661e2781a55df96fb9f94673))
|
|
111
|
-
|
|
112
|
-
### [9.0.1](https://github.com/webpack-contrib/sass-loader/compare/v9.0.0...v9.0.1) (2020-07-03)
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
### Bug Fixes
|
|
116
|
-
|
|
117
|
-
* do not crash on errors ([#860](https://github.com/webpack-contrib/sass-loader/issues/860)) ([e854933](https://github.com/webpack-contrib/sass-loader/commit/e8549330f8d9373ff8baccffbfd3e0c3b6f3ef61))
|
|
118
|
-
|
|
119
|
-
## [9.0.0](https://github.com/webpack-contrib/sass-loader/compare/v8.0.2...v9.0.0) (2020-07-02)
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
### ⚠ BREAKING CHANGES
|
|
123
|
-
|
|
124
|
-
* minimum supported Nodejs version is `10.13`
|
|
125
|
-
* prefer `sass` (`dart-sass`) by default, it is strongly recommended to migrate on `sass` (`dart-sass`)
|
|
126
|
-
* the `prependData` option was removed in favor the `additionalData` option, see [docs](https://github.com/webpack-contrib/sass-loader#additionaldata)
|
|
127
|
-
* when the `sourceMap` is `true`, `sassOptions.sourceMap`, `sassOptions.sourceMapContents`, `sassOptions.sourceMapEmbed`, `sassOptions.sourceMapRoot` and `sassOptions.omitSourceMapUrl` will be ignored.
|
|
128
|
-
|
|
129
|
-
### Features
|
|
130
|
-
|
|
131
|
-
* pass the loader context to custom importers under the `this.webpackLoaderContext` property ([#853](https://github.com/webpack-contrib/sass-loader/issues/853)) ([d487683](https://github.com/webpack-contrib/sass-loader/commit/d487683221fcd1e5a173e083b4b40644751c8cb1))
|
|
132
|
-
* supports for `process.cwd()` resolution logic by default ([#837](https://github.com/webpack-contrib/sass-loader/issues/837)) ([0c8d3b3](https://github.com/webpack-contrib/sass-loader/commit/0c8d3b3fb1cf371779b4a886cfc4e60facf68759))
|
|
133
|
-
* supports for `SASS-PATH` env variable resolution logic by default ([#836](https://github.com/webpack-contrib/sass-loader/issues/836)) ([8376179](https://github.com/webpack-contrib/sass-loader/commit/83761798380dcccc5a2badde3b3affe2bac385e8))
|
|
134
|
-
* supports for the `sass` property for the `exports` field from `package.json` (conditional exports, for more information read [docs](https://nodejs.org/api/esm.html))
|
|
135
|
-
|
|
136
|
-
### Bug Fixes
|
|
137
|
-
|
|
138
|
-
* avoid different content on different os ([#832](https://github.com/webpack-contrib/sass-loader/issues/832)) ([68dd278](https://github.com/webpack-contrib/sass-loader/commit/68dd27883ce0536adc5bc170816242c67fb118ff))
|
|
139
|
-
* resolution logic when the `includePaths` option used was improved ([#827](https://github.com/webpack-contrib/sass-loader/issues/827)) ([cbe5ad4](https://github.com/webpack-contrib/sass-loader/commit/cbe5ad407582a617be097d3eadd3ad8619e52507))
|
|
140
|
-
* resolution logic for `file://` scheme was improved ([17832fd](https://github.com/webpack-contrib/sass-loader/commit/17832fdb11f91593f4e2995003d67aebefb3be90))
|
|
141
|
-
* resolution logic for absolute paths and server relative URLs was improved
|
|
142
|
-
* source maps generation was improved
|
|
143
|
-
|
|
144
|
-
### [8.0.2](https://github.com/webpack-contrib/sass-loader/compare/v8.0.1...v8.0.2) (2020-01-13)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
### Bug Fixes
|
|
148
|
-
|
|
149
|
-
* compatibility with node@8 ([#798](https://github.com/webpack-contrib/sass-loader/issues/798)) ([6f3852f](https://github.com/webpack-contrib/sass-loader/commit/6f3852f7d393dd0bc8f8d264d81ecc941bc72511))
|
|
150
|
-
|
|
151
|
-
### [8.0.1](https://github.com/webpack-contrib/sass-loader/compare/v8.0.0...v8.0.1) (2020-01-10)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
### Bug Fixes
|
|
155
|
-
|
|
156
|
-
* support webpack@5 ([#794](https://github.com/webpack-contrib/sass-loader/issues/794)) ([6c59e37](https://github.com/webpack-contrib/sass-loader/commit/6c59e37e3f67668d7a3908444ddfc0176bc5601f))
|
|
157
|
-
|
|
158
|
-
## [8.0.0](https://github.com/webpack-contrib/sass-loader/compare/v7.3.1...v8.0.0) (2019-08-29)
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
### ⚠ BREAKING CHANGES
|
|
162
|
-
|
|
163
|
-
* minimum required `webpack` version is `4.36.0`
|
|
164
|
-
* minimum required `node.js` version is `8.9.0`
|
|
165
|
-
* move all sass (`includePaths`, `importer`, `functions`, `outputStyle`) options to the `sassOptions` option. The `functions` option can't be used as `Function`, you should use `sassOption` as `Function` to achieve this.
|
|
166
|
-
* the `data` option was renamed to the `prependData` option
|
|
167
|
-
* default value of the `sourceMap` option depends on the `devtool` value (`eval`/`false` values don't enable source map generation)
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
### Features
|
|
171
|
-
|
|
172
|
-
* automatically use the `fibers` package if it is possible ([#744](https://github.com/webpack-contrib/sass-loader/issues/744)) ([96184e1](https://github.com/webpack-contrib/sass-loader/commit/96184e1))
|
|
173
|
-
* source map generation depends on the `devtool` option ([#743](https://github.com/webpack-contrib/sass-loader/issues/743)) ([fcea88e](https://github.com/webpack-contrib/sass-loader/commit/fcea88e))
|
|
174
|
-
* validate loader options ([#737](https://github.com/webpack-contrib/sass-loader/issues/737)) ([7b543fc](https://github.com/webpack-contrib/sass-loader/commit/7b543fc))
|
|
175
|
-
* reworked error handling from `node-sass`/`sass`
|
|
176
|
-
* improve resolution for `@import` (including support `_index` and `index` files in a directory)
|
|
177
|
-
|
|
178
|
-
### Bug Fixes
|
|
179
|
-
|
|
180
|
-
* compatibility with `pnp`
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
### [7.3.1](https://github.com/webpack-contrib/sass-loader/compare/v7.3.0...v7.3.1) (2019-08-20)
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
### Bug Fixes
|
|
187
|
-
|
|
188
|
-
* minimum `node` version in `package.json` ([#733](https://github.com/webpack-contrib/sass-loader/issues/733)) ([1175920](https://github.com/webpack-contrib/sass-loader/commit/1175920))
|
|
189
|
-
|
|
190
|
-
## [7.3.0](https://github.com/webpack-contrib/sass-loader/compare/v7.2.0...v7.3.0) (2019-08-20)
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
### Bug Fixes
|
|
194
|
-
|
|
195
|
-
* handle module import ending `/` as module ([#728](https://github.com/webpack-contrib/sass-loader/issues/728)) ([997a255](https://github.com/webpack-contrib/sass-loader/commit/997a255))
|
|
196
|
-
* resolution algorithm ([#720](https://github.com/webpack-contrib/sass-loader/issues/720)) ([0e94940](https://github.com/webpack-contrib/sass-loader/commit/0e94940))
|
|
197
|
-
* use "compressed" output when mode is "production" ([#723](https://github.com/webpack-contrib/sass-loader/issues/723)) ([b2af379](https://github.com/webpack-contrib/sass-loader/commit/b2af379))
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
### Features
|
|
201
|
-
|
|
202
|
-
* `webpackImporter` option ([#732](https://github.com/webpack-contrib/sass-loader/issues/732)) ([6f4ea37](https://github.com/webpack-contrib/sass-loader/commit/6f4ea37))
|
|
203
|
-
|
|
204
|
-
<a name="7.2.0"></a>
|
|
205
|
-
# [7.2.0](https://github.com/webpack-contrib/sass-loader/compare/v7.1.0...v7.2.0) (2019-08-08)
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
### Bug Fixes
|
|
209
|
-
|
|
210
|
-
* better handle stdin in sources ([#681](https://github.com/webpack-contrib/sass-loader/issues/681)) ([e279f2a](https://github.com/webpack-contrib/sass-loader/commit/e279f2a))
|
|
211
|
-
* prefer `sass`/`scss`/`css` extensions ([#711](https://github.com/webpack-contrib/sass-loader/issues/711)) ([6fc9d4e](https://github.com/webpack-contrib/sass-loader/commit/6fc9d4e))
|
|
212
|
-
* relax node engine ([#708](https://github.com/webpack-contrib/sass-loader/issues/708)) ([2a51502](https://github.com/webpack-contrib/sass-loader/commit/2a51502))
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
### Features
|
|
216
|
-
|
|
217
|
-
* allow passing `functions` option as function ([#651](https://github.com/webpack-contrib/sass-loader/issues/651)) ([6c9654d](https://github.com/webpack-contrib/sass-loader/commit/6c9654d))
|
|
218
|
-
* support `data` as `Function` ([#648](https://github.com/webpack-contrib/sass-loader/issues/648)) ([aa64e1b](https://github.com/webpack-contrib/sass-loader/commit/aa64e1b))
|
|
219
|
-
* support `sass` and `style` fields in `package.json` ([#647](https://github.com/webpack-contrib/sass-loader/issues/647)) ([a8709c9](https://github.com/webpack-contrib/sass-loader/commit/a8709c9))
|
|
220
|
-
* support auto resolving `dart-sass` ([ff90dd6](https://github.com/webpack-contrib/sass-loader/commit/ff90dd6))
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
<a name="7.1.0"></a>
|
|
225
|
-
# [7.1.0](https://github.com/webpack-contrib/sass-loader/compare/v7.0.3...v7.1.0) (2018-08-01)
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
### Features
|
|
229
|
-
|
|
230
|
-
* Make this package implementation-agnostic (#573) ([bed9fb5](https://github.com/webpack-contrib/sass-loader/commit/bed9fb5)), closes [#435](https://github.com/webpack-contrib/sass-loader/issues/435)
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
<a name="7.0.3"></a>
|
|
235
|
-
## [7.0.3](https://github.com/webpack-contrib/sass-loader/compare/v7.0.2...v7.0.3) (2018-06-05)
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
### Bug Fixes
|
|
239
|
-
|
|
240
|
-
* Bare imports not working sometimes (#579) ([c348281](https://github.com/webpack-contrib/sass-loader/commit/c348281)), closes [#566](https://github.com/webpack-contrib/sass-loader/issues/566)
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
<a name="7.0.2"></a>
|
|
245
|
-
## [7.0.2](https://github.com/webpack-contrib/sass-loader/compare/v7.0.1...v7.0.2) (2018-06-02)
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
### Bug Fixes
|
|
249
|
-
|
|
250
|
-
* Errors being swallowed when trying to load node-sass (#576) ([6dfb274](https://github.com/webpack-contrib/sass-loader/commit/6dfb274)), closes [#563](https://github.com/webpack-contrib/sass-loader/issues/563)
|
|
251
|
-
* Report error to user for problems loading node-sass (#562) ([2529c07](https://github.com/webpack-contrib/sass-loader/commit/2529c07))
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
<a name="7.0.1"></a>
|
|
256
|
-
## [7.0.1](https://github.com/webpack-contrib/sass-loader/compare/v7.0.0...v7.0.1) (2018-04-13)
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
### Bug Fixes
|
|
260
|
-
|
|
261
|
-
* Wrong import precedence (#557) ([f4eeff1](https://github.com/webpack-contrib/sass-loader/commit/f4eeff1))
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
<a name="7.0.0"></a>
|
|
266
|
-
# [7.0.0](https://github.com/webpack-contrib/sass-loader/compare/v6.0.7...v7.0.0) (2018-04-13)
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
### Features
|
|
270
|
-
|
|
271
|
-
* Refactor resolving and simplify webpack config aliases (#479) ([e0fde1a](https://github.com/webpack-contrib/sass-loader/commit/e0fde1a))
|
|
272
|
-
* Remove `node-sass` from `peerDependencies` (#533) ([6439cef](https://github.com/webpack-contrib/sass-loader/commit/6439cef))
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
### BREAKING CHANGES
|
|
276
|
-
|
|
277
|
-
* Drop official node 4 support
|
|
278
|
-
* This slightly changes the resolving algorithm. Should not break in normal usage, but might break in complex configurations.
|
|
279
|
-
* The sass-loader throws an error at runtime now and refuses to compile if the peer dependency is wrong. This could break applications where npm's peer dependency warning was just ignored.
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
<a name="6.0.7"></a>
|
|
284
|
-
## [6.0.7](https://github.com/webpack-contrib/sass-loader/compare/v6.0.6...v6.0.7) (2018-03-03)
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
### Bug Fixes
|
|
288
|
-
|
|
289
|
-
* **package:** add `webpack >= v4.0.0` (`peerDependencies`) ([#541](https://github.com/webpack-contrib/sass-loader/issues/541)) ([620bdd4](https://github.com/webpack-contrib/sass-loader/commit/620bdd4))
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
### Performance Improvements
|
|
293
|
-
|
|
294
|
-
* use `neo-async` instead `async` ([#538](https://github.com/webpack-contrib/sass-loader/issues/538)) ([fab89dc](https://github.com/webpack-contrib/sass-loader/commit/fab89dc))
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
<a name="6.0.6"></a>
|
|
299
|
-
## [6.0.6](https://github.com/webpack-contrib/sass-loader/compare/v6.0.5...v6.0.6) (2017-06-14)
|
|
300
|
-
|
|
301
|
-
### Chore
|
|
302
|
-
|
|
303
|
-
* Adds Webpack 3.x version range to peerDependencies
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
<a name="6.0.5"></a>
|
|
307
|
-
# [6.0.5](https://github.com/webpack-contrib/sass-loader/compare/v6.0.5...v6.0.4) (2017-05-10)
|
|
308
|
-
|
|
309
|
-
### Bug Fixes
|
|
310
|
-
|
|
311
|
-
* importing file directly from scoped npm package [#450](https://github.com/webpack-contrib/sass-loader/pull/450) ([5d06e9d](https://github.com/webpack-contrib/sass-loader/commit/5d06e9d))
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
<a name="6.0.4"></a>
|
|
315
|
-
# [6.0.4](https://github.com/webpack-contrib/sass-loader/compare/v6.0.4...v6.0.3) (2017-05-09)
|
|
316
|
-
|
|
317
|
-
### Bug Fixes
|
|
318
|
-
|
|
319
|
-
* fix: Resolving of scoped npm packages [#447](https://github.com/webpack-contrib/sass-loader/pull/447)
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
<a name="6.0.3"></a>
|
|
323
|
-
# [6.0.3](https://github.com/webpack-contrib/sass-loader/compare/v6.0.3...v6.0.2) (2017-03-07)
|
|
324
|
-
|
|
325
|
-
### Bug Fixes
|
|
326
|
-
|
|
327
|
-
* Fix regression with empty files [#398](https://github.com/webpack-contrib/sass-loader/pull/398)
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
### Chore
|
|
331
|
-
|
|
332
|
-
* Reduce npm package size by using the [files](https://docs.npmjs.com/files/package.json#files) property in the `package.json`
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
<a name="6.0.2"></a>
|
|
336
|
-
# [6.0.2](https://github.com/webpack-contrib/sass-loader/compare/v6.0.2...v6.0.1) (2017-02-21)
|
|
337
|
-
|
|
338
|
-
### Chore
|
|
339
|
-
|
|
340
|
-
* Update dependencies [#383](https://github.com/webpack-contrib/sass-loader/pull/383)
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
<a name="6.0.1"></a>
|
|
344
|
-
# [6.0.1](https://github.com/webpack-contrib/sass-loader/compare/v6.0.1...v6.0.0) (2017-02-17)
|
|
345
|
-
|
|
346
|
-
### Bug Fixes
|
|
347
|
-
|
|
348
|
-
* Fix source maps in certain CWDs. [#377](https://github.com/webpack-contrib/sass-loader/pull/377)
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
<a name="6.0.0"></a>
|
|
352
|
-
# [6.0.0](https://github.com/webpack-contrib/sass-loader/compare/v6.0.0...v5.0.1) (2017-02-13)
|
|
353
|
-
|
|
354
|
-
### Bug Fixes
|
|
355
|
-
|
|
356
|
-
* Improve source map support. [#374](https://github.com/webpack-contrib/sass-loader/issues/374)
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
### BREAKING CHANGES
|
|
360
|
-
|
|
361
|
-
* This is breaking for the resolve-url-loader
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
<a name="5.0.1"></a>
|
|
365
|
-
# [5.0.1](https://github.com/webpack-contrib/sass-loader/compare/v5.0.1...v5.0.0) (2017-02-13)
|
|
366
|
-
|
|
367
|
-
### Bug Fixes
|
|
368
|
-
|
|
369
|
-
* Fix bug where multiple compilations interfered with each other. [#369](https://github.com/webpack-contrib/sass-loader/pull/369)
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
<a name="5.0.0"></a>
|
|
373
|
-
# [5.0.0](https://github.com/webpack-contrib/sass-loader/compare/v5.0.0...v4.1.1) (2017-02-13)
|
|
374
|
-
|
|
375
|
-
### Code Refactoring
|
|
376
|
-
|
|
377
|
-
* Remove synchronous compilation support [#334](https://github.com/webpack-contrib/sass-loader/pull/334)
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
### BREAKING CHANGES
|
|
381
|
-
|
|
382
|
-
* Remove node 0.12 support. [29b30755021a834e622bf4b5bb9db4d6e5913905](https://github.com/webpack-contrib/sass-loader/commit/29b30755021a834e622bf4b5bb9db4d6e5913905)
|
|
383
|
-
* Remove official node-sass@3 and webpack@1 support. [5a6bcb96d8bd7a7a11c33252ba739ffe09ca38c5](https://github.com/webpack-contrib/sass-loader/commit/5a6bcb96d8bd7a7a11c33252ba739ffe09ca38c5)
|
|
384
|
-
* Remove synchronous compilation support. [#334](https://github.com/webpack-contrib/sass-loader/pull/334)
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
<a name="4.1.1"></a>
|
|
388
|
-
# [4.1.1](https://github.com/webpack-contrib/sass-loader/compare/v4.1.1...v4.1.0) (2016-12-21)
|
|
389
|
-
|
|
390
|
-
### Chore
|
|
391
|
-
|
|
392
|
-
* Update webpack peer dependency to support 2.2.0rc. [#330](https://github.com/webpack-contrib/sass-loader/pull/330)
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
<a name="4.1.0"></a>
|
|
396
|
-
# [4.1.0](https://github.com/webpack-contrib/sass-loader/compare/v4.1.0...v4.0.2) (2016-12-14)
|
|
397
|
-
|
|
398
|
-
### Features
|
|
399
|
-
|
|
400
|
-
* Update `node-sass@4.0.0` [#319](https://github.com/webpack-contrib/sass-loader/pull/319)
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
<a name="4.0.2"></a>
|
|
404
|
-
# [4.0.2](https://github.com/webpack-contrib/sass-loader/compare/v4.0.2...v4.0.1) (2016-07-07)
|
|
405
|
-
|
|
406
|
-
### Bug Fixes
|
|
407
|
-
|
|
408
|
-
* Fix wrong context in customImporters [#281](https://github.com/webpack-contrib/sass-loader/pull/281)
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
<a name="4.0.1"></a>
|
|
412
|
-
# [4.0.1](https://github.com/webpack-contrib/sass-loader/compare/v4.0.1...v4.0.0) (2016-07-01)
|
|
413
|
-
|
|
414
|
-
### Bug Fixes
|
|
415
|
-
|
|
416
|
-
* Fix custom importers receiving `'stdin'` as second argument instead of the actual `resourcePath` [#267](https://github.com/webpack-contrib/sass-loader/pull/267)
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
<a name="4.0.0"></a>
|
|
420
|
-
# [4.0.0](https://github.com/webpack-contrib/sass-loader/compare/v4.0.0...v3.2.2) (2016-06-27)
|
|
421
|
-
|
|
422
|
-
### Bug Fixes
|
|
423
|
-
|
|
424
|
-
* Fix incorrect source map paths [#250](https://github.com/webpack-contrib/sass-loader/pull/250)
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
### BREAKING CHANGES
|
|
428
|
-
|
|
429
|
-
* Release new major version because the previous release was a breaking change in certain scenarios
|
|
430
|
-
See: https://github.com/webpack-contrib/sass-loader/pull/250#issuecomment-228663059
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
<a name="3.2.2"></a>
|
|
434
|
-
# [3.2.2](https://github.com/webpack-contrib/sass-loader/compare/v3.2.2...v3.2.1) (2016-06-26)
|
|
435
|
-
|
|
436
|
-
### Bug Fixes
|
|
437
|
-
|
|
438
|
-
* Fix incorrect source map paths [#250](https://github.com/webpack-contrib/sass-loader/pull/250)
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
<a name="3.2.1"></a>
|
|
442
|
-
# [3.2.1](https://github.com/webpack-contrib/sass-loader/compare/v3.2.1...v3.2.0) (2016-06-19)
|
|
443
|
-
|
|
444
|
-
### Bug Fixes
|
|
445
|
-
|
|
446
|
-
* Add `webpack@^2.1.0-beta` as peer dependency [#233](https://github.com/webpack-contrib/sass-loader/pull/233)
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
<a name="3.2.0"></a>
|
|
450
|
-
# [3.2.0](https://github.com/webpack-contrib/sass-loader/compare/v3.2.0...v3.1.2) (2016-03-12)
|
|
451
|
-
|
|
452
|
-
### Features
|
|
453
|
-
|
|
454
|
-
* Append file content instead of overwriting when `data`-option is already present [#216](https://github.com/webpack-contrib/sass-loader/pull/216)
|
|
455
|
-
* Make `indentedSyntax` option a bit smarter [#196](https://github.com/webpack-contrib/sass-loader/pull/196)
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
<a name="3.1.2"></a>
|
|
459
|
-
# [3.1.2](https://github.com/webpack-contrib/sass-loader/compare/v3.1.2...v3.1.1) (2015-11-22)
|
|
460
|
-
|
|
461
|
-
### Bug Fixes
|
|
462
|
-
|
|
463
|
-
* Fix loader query not overriding webpack config [#189](https://github.com/webpack-contrib/sass-loader/pull/189)
|
|
464
|
-
* Update peer-dependencies [#182](https://github.com/webpack-contrib/sass-loader/pull/182)
|
|
465
|
-
- `node-sass^3.4.2`
|
|
466
|
-
- `webpack^1.12.6`
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
<a name="3.1.1"></a>
|
|
470
|
-
# [3.1.1](https://github.com/webpack-contrib/sass-loader/compare/v3.1.1...v3.1.0) (2015-10-26)
|
|
471
|
-
|
|
472
|
-
### Bug Fixes
|
|
473
|
-
|
|
474
|
-
* Fix missing module `object-assign` [#178](https://github.com/webpack-contrib/sass-loader/issues/178)
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
<a name="3.1.0"></a>
|
|
478
|
-
# [3.1.0](https://github.com/webpack-contrib/sass-loader/compare/v3.1.0...v3.0.0) (2015-10-25)
|
|
479
|
-
|
|
480
|
-
### Bug Fixes
|
|
481
|
-
|
|
482
|
-
* Fix a problem where modules with a `.` in their names were not resolved [#167](https://github.com/webpack-contrib/sass-loader/issues/167)
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
### Features
|
|
486
|
-
|
|
487
|
-
* Add possibility to also define all options in your `webpack.config.js` [#152](https://github.com/webpack-contrib/sass-loader/pull/152) [#170](https://github.com/webpack-contrib/sass-loader/pull/170)
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
<a name="3.0.0"></a>
|
|
491
|
-
# [3.0.0](https://github.com/webpack-contrib/sass-loader/compare/v3.0.0...v2.0.1) (2015-09-29)
|
|
492
|
-
|
|
493
|
-
### Bug Fixes
|
|
494
|
-
|
|
495
|
-
* Fix crash when Sass reported an error without `file` [#158](https://github.com/webpack-contrib/sass-loader/pull/158)
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
### BREAKING CHANGES
|
|
499
|
-
|
|
500
|
-
* Add `node-sass@^3.3.3` and `webpack@^1.12.2` as peer-dependency [#165](https://github.com/webpack-contrib/sass-loader/pull/165) [#166](https://github.com/webpack-contrib/sass-loader/pull/166) [#169](https://github.com/webpack-contrib/sass-loader/pull/169)
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
<a name="2.0.1"></a>
|
|
504
|
-
# [2.0.1](https://github.com/webpack-contrib/sass-loader/compare/v2.0.1...v2.0.0) (2015-08-14)
|
|
505
|
-
|
|
506
|
-
### Bug Fixes
|
|
507
|
-
|
|
508
|
-
* Add missing path normalization (fixes [#141](https://github.com/webpack-contrib/sass-loader/pull/141))
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
<a name="2.0.0"></a>
|
|
512
|
-
# [2.0.0](https://github.com/webpack-contrib/sass-loader/compare/v2.0.0...v1.0.4) (2015-08-06)
|
|
513
|
-
|
|
514
|
-
### Bug Fixes
|
|
515
|
-
|
|
516
|
-
* Add temporary fix for stuck processes (see [sass/node-sass#857](https://github.com/sass/node-sass/issues/857)) [#100](https://github.com/webpack-contrib/sass-loader/issues/100) [#119](https://github.com/webpack-contrib/sass-loader/issues/119) [#132](https://github.com/webpack-contrib/sass-loader/pull/132)
|
|
517
|
-
* Fix path resolving on Windows [#108](https://github.com/webpack-contrib/sass-loader/issues/108)
|
|
518
|
-
* Fix file watchers on Windows [#102](https://github.com/webpack-contrib/sass-loader/issues/102)
|
|
519
|
-
* Fix file watchers for files with errors [#134](https://github.com/webpack-contrib/sass-loader/pull/134)
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
### Code Refactoring
|
|
523
|
-
|
|
524
|
-
* Refactor [import resolving algorithm](https://github.com/webpack-contrib/sass-loader/blob/089c52dc9bd02ec67fb5c65c2c226f43710f231c/index.js#L293-L348). ([#138](https://github.com/webpack-contrib/sass-loader/issues/138)) ([c8621a1](https://github.com/webpack-contrib/sass-loader/commit/80944ccf09cd9716a100160c068d255c5d742338))
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
### BREAKING CHANGES
|
|
528
|
-
|
|
529
|
-
* The new algorithm is aligned to libsass' way of resolving files. This yields to different results if two files with the same path and filename but with different extensions are present. Though this change should be no problem for most users, we must flag it as breaking change. [#135](https://github.com/webpack-contrib/sass-loader/issues/135) [#138](https://github.com/webpack-contrib/sass-loader/issues/138)
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
<a name="1.0.4"></a>
|
|
533
|
-
# [1.0.4](https://github.com/webpack-contrib/sass-loader/compare/v1.0.4...v1.0.3) (2015-08-03)
|
|
534
|
-
|
|
535
|
-
### Bug Fixes
|
|
536
|
-
|
|
537
|
-
* Fix wrong source-map urls [#123](https://github.com/webpack-contrib/sass-loader/pull/123)
|
|
538
|
-
* Include source-map contents by default [#104](https://github.com/webpack-contrib/sass-loader/pull/104)
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
<a name="1.0.3"></a>
|
|
542
|
-
# [1.0.3](https://github.com/webpack-contrib/sass-loader/compare/v1.0.3...v1.0.2) (2015-07-22)
|
|
543
|
-
|
|
544
|
-
### Bug Fixes
|
|
545
|
-
|
|
546
|
-
* Fix importing css files from scss/sass [#101](https://github.com/webpack-contrib/sass-loader/issues/101)
|
|
547
|
-
* Fix importing Sass partials from includePath [#98](https://github.com/webpack-contrib/sass-loader/issues/98) [#110](https://github.com/webpack-contrib/sass-loader/issues/110)
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
<a name="1.0.2"></a>
|
|
551
|
-
# [1.0.2](https://github.com/webpack-contrib/sass-loader/compare/v1.0.2...v1.0.1) (2015-04-15)
|
|
552
|
-
|
|
553
|
-
### Bug Fixes
|
|
554
|
-
|
|
555
|
-
* Fix a bug where files could not be imported across language styles [#73](https://github.com/webpack-contrib/sass-loader/issues/73)
|
|
556
|
-
* Update peer-dependency `node-sass` to `3.1.0`
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
<a name="1.0.1"></a>
|
|
560
|
-
# [1.0.1](https://github.com/webpack-contrib/sass-loader/compare/v1.0.1...v1.0.0) (2015-03-31)
|
|
561
|
-
|
|
562
|
-
### Bug Fixes
|
|
563
|
-
|
|
564
|
-
* Fix Sass partials not being resolved anymore [#68](https://github.com/webpack-contrib/sass-loader/issues/68)
|
|
565
|
-
* Update peer-dependency `node-sass` to `3.0.0-beta.4`
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
<a name="1.0.0"></a>
|
|
569
|
-
# [1.0.0](https://github.com/webpack-contrib/sass-loader/compare/v1.0.0...v0.3.1) (2015-03-22)
|
|
570
|
-
|
|
571
|
-
### Bug Fixes
|
|
572
|
-
|
|
573
|
-
* Moved `node-sass^3.0.0-alpha.0` to `peerDependencies` [#28](https://github.com/webpack-contrib/sass-loader/issues/28)
|
|
574
|
-
* Using webpack's module resolver as custom importer [#39](https://github.com/webpack-contrib/sass-loader/issues/31)
|
|
575
|
-
* Add synchronous compilation support for usage with [enhanced-require](https://github.com/webpack/enhanced-require) [#39](https://github.com/webpack-contrib/sass-loader/pull/39)
|