sass-loader
Advanced tools
Comparing version 1.0.0 to 1.0.1
Changelog | ||
--------- | ||
### 1.0.1 | ||
- Fix SASS partials not being resolved anymore [#68](https://github.com/jtangelder/sass-loader/issues/68) | ||
- Update peer-dependency `node-sass` to `3.0.0-beta.4` | ||
### 1.0.0 | ||
@@ -8,2 +13,2 @@ | ||
- Using webpack's module resolver as custom importer [#39](https://github.com/jtangelder/sass-loader/issues/31) | ||
- Add synchronous compilation support for usage with [enhanced-require](https://github.com/webpack/enhanced-require) [#39](https://github.com/jtangelder/sass-loader/pull/39) | ||
- Add synchronous compilation support for usage with [enhanced-require](https://github.com/webpack/enhanced-require) [#39](https://github.com/jtangelder/sass-loader/pull/39) |
121
index.js
@@ -17,2 +17,3 @@ 'use strict'; | ||
}; | ||
var resolveError = /Cannot resolve/; | ||
@@ -22,3 +23,3 @@ /** | ||
* | ||
* @param {String} content | ||
* @param {string} content | ||
* @returns {*} | ||
@@ -65,3 +66,3 @@ */ | ||
* | ||
* @returns {Function} | ||
* @returns {function} | ||
*/ | ||
@@ -71,3 +72,2 @@ function getWebpackImporter() { | ||
return function syncWebpackImporter(url, context) { | ||
var filename; | ||
@@ -77,13 +77,3 @@ url = urlToRequest(url); | ||
try { | ||
filename = self.resolveSync(context, url); | ||
self.dependency && self.dependency(filename); | ||
} catch (err) { | ||
// Unfortunately we can't return an error inside a custom importer yet | ||
// @see https://github.com/sass/node-sass/issues/651#issuecomment-73317319 | ||
filename = url; | ||
} | ||
return { | ||
file: filename | ||
}; | ||
return syncResolve(self, url, context); | ||
}; | ||
@@ -96,18 +86,3 @@ } | ||
self.resolve(context, url, function onWebpackResolve(err, filename) { | ||
if (err) { | ||
// Unfortunately we can't return an error inside a custom importer yet | ||
// @see https://github.com/sass/node-sass/issues/651#issuecomment-73317319 | ||
filename = url; | ||
} else { | ||
self.dependency && self.dependency(filename); | ||
} | ||
// Use self.loadModule() before calling done() to make imported files available to | ||
// other webpack tools like postLoaders etc.? | ||
done({ | ||
file: filename | ||
}); | ||
}); | ||
asyncResolve(self, url, context, done); | ||
}; | ||
@@ -219,1 +194,87 @@ } | ||
} | ||
/** | ||
* Tries to resolve the given url synchronously. If a resolve error occurs, a second try for the same | ||
* module prefixed with an underscore is started. | ||
* | ||
* @param {object} loaderContext | ||
* @param {string} url | ||
* @param {string} context | ||
* @returns {object} | ||
*/ | ||
function syncResolve(loaderContext, url, context) { | ||
var filename; | ||
var basename; | ||
try { | ||
filename = loaderContext.resolveSync(context, url); | ||
loaderContext.dependency && loaderContext.dependency(filename); | ||
} catch (err) { | ||
basename = path.basename(url); | ||
if (requiresLookupForUnderscoreModule(err, basename)) { | ||
url = addUnderscoreToBasename(url, basename); | ||
return syncResolve(loaderContext, url, context); | ||
} | ||
// Unfortunately we can't return an error inside a custom importer yet | ||
// @see https://github.com/sass/node-sass/issues/651#issuecomment-73317319 | ||
filename = url; | ||
} | ||
return { | ||
file: filename | ||
}; | ||
} | ||
/** | ||
* Tries to resolve the given url asynchronously. If a resolve error occurs, a second try for the same | ||
* module prefixed with an underscore is started. | ||
* | ||
* @param {object} loaderContext | ||
* @param {string} url | ||
* @param {string} context | ||
* @param {function} done | ||
*/ | ||
function asyncResolve(loaderContext, url, context, done) { | ||
loaderContext.resolve(context, url, function onWebpackResolve(err, filename) { | ||
var basename; | ||
if (err) { | ||
basename = path.basename(url); | ||
if (requiresLookupForUnderscoreModule(err, basename)) { | ||
url = addUnderscoreToBasename(url, basename); | ||
return asyncResolve(loaderContext, url, context, done); | ||
} | ||
// Unfortunately we can't return an error inside a custom importer yet | ||
// @see https://github.com/sass/node-sass/issues/651#issuecomment-73317319 | ||
filename = url; | ||
} else { | ||
loaderContext.dependency && loaderContext.dependency(filename); | ||
} | ||
// Use self.loadModule() before calling done() to make imported files available to | ||
// other webpack tools like postLoaders etc.? | ||
done({ | ||
file: filename | ||
}); | ||
}); | ||
} | ||
/** | ||
* Check whether its a resolve error and the basename does *not* start with an underscore. | ||
* | ||
* @param {Error} err | ||
* @param {string} basename | ||
* @returns {boolean} | ||
*/ | ||
function requiresLookupForUnderscoreModule(err, basename) { | ||
return resolveError.test(err.message) && basename.charAt(0) !== '_'; | ||
} | ||
/** | ||
* @param {string} url | ||
* @param {string} basename | ||
* @returns {string} | ||
*/ | ||
function addUnderscoreToBasename(url, basename) { | ||
return url.slice(0, -basename.length) + '_' + basename; | ||
} |
{ | ||
"name": "sass-loader", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Sass loader for webpack", | ||
@@ -26,3 +26,3 @@ "main": "index.js", | ||
"peerDependencies": { | ||
"node-sass": "^3.0.0-alpha.0" | ||
"node-sass": "^3.0.0-beta.4" | ||
}, | ||
@@ -29,0 +29,0 @@ "dependencies": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
19374
236
0