diff --git a/package-lock.json b/package-lock.json index 70ae1745..4959277d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,7 +48,7 @@ "semver": "^7.5.4", "standard-version": "^9.3.1", "style-loader": "^3.3.4", - "webpack": "^5.88.2", + "webpack": "^5.93.0", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.0.4" }, diff --git a/package.json b/package.json index fee94e3b..633dcbaf 100644 --- a/package.json +++ b/package.json @@ -105,7 +105,7 @@ "semver": "^7.5.4", "standard-version": "^9.3.1", "style-loader": "^3.3.4", - "webpack": "^5.88.2", + "webpack": "^5.93.0", "webpack-cli": "^5.1.4", "webpack-dev-server": "^5.0.4" }, diff --git a/test/__snapshots__/sourceMap-options.test.js.no-node-sass.snap b/test/__snapshots__/sourceMap-options.test.js.no-node-sass.snap index 5921e7ee..fa5872c1 100644 --- a/test/__snapshots__/sourceMap-options.test.js.no-node-sass.snap +++ b/test/__snapshots__/sourceMap-options.test.js.no-node-sass.snap @@ -634,7 +634,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:10"", +@import "sass-embedded-legacy-load-done:11"", ], "version": 3, } @@ -1639,7 +1639,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:9"", +@import "sass-embedded-legacy-load-done:10"", ], "version": 3, } @@ -2643,7 +2643,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:8"", +@import "sass-embedded-legacy-load-done:9"", ], "version": 3, } @@ -3647,7 +3647,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:7"", +@import "sass-embedded-legacy-load-done:8"", ], "version": 3, } @@ -4020,6 +4020,1034 @@ exports[`sourceMap option should generate source maps when value is not specifie exports[`sourceMap option should generate source maps when value is not specified and the "devtool" option has "source-map" value ('sass-embedded', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "sourcesContent": [ + "@import "another/variables" +@import "./file.css" + +$font-stack: Helvetica, sans-serif +$primary-color: #333 +$pi: '\\e0C6' + +body + font: 100% $font-stack + color: $primary-color + +nav + ul + margin: 0 + padding: 0 + list-style: none + + li + display: inline-block + + a + display: block + padding: 6px 12px + text-decoration: none + +=border-radius($radius) + -webkit-border-radius: $radius + -moz-border-radius: $radius + -ms-border-radius: $radius + border-radius: $radius + +.box + +border-radius(10px) + +.message + border: 1px solid #ccc + padding: 10px + color: #333 + +.success + @extend .message + border-color: green + +.error + @extend .message + border-color: red + +.warning + @extend .message + border-color: yellow + +.foo + &:before + content: $pi + +.bar + &:before + content: $n-ary-summation + +", + "$n-ary-summation: '\\2211' +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } + +.foo { + &:before { + content: $pi; + } +} + +.bar { + &:before { + content: $n-ary-summation; + } +} +", + "$n-ary-summation: '\\2211' +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "sourcesContent": [ + "@import "another/variables" +@import "./file.css" + +$font-stack: Helvetica, sans-serif +$primary-color: #333 +$pi: '\\e0C6' + +body + font: 100% $font-stack + color: $primary-color + +nav + ul + margin: 0 + padding: 0 + list-style: none + + li + display: inline-block + + a + display: block + padding: 6px 12px + text-decoration: none + +=border-radius($radius) + -webkit-border-radius: $radius + -moz-border-radius: $radius + -ms-border-radius: $radius + border-radius: $radius + +.box + +border-radius(10px) + +.message + border: 1px solid #ccc + padding: 10px + color: #333 + +.success + @extend .message + border-color: green + +.error + @extend .message + border-color: red + +.warning + @extend .message + border-color: yellow + +.foo + &:before + content: $pi + +.bar + &:before + content: $n-ary-summation + +", + "$n-ary-summation: '\\2211' + +@import "sass-embedded-legacy-load-done:15"", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } + +.foo { + &:before { + content: $pi; + } +} + +.bar { + &:before { + content: $n-ary-summation; + } +} +", + "$n-ary-summation: '\\2211' + +;@import "sass-embedded-legacy-load-done:7";", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; + exports[`sourceMap option should not generate source maps when value has "false" value and the "devtool" option has "false" value ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset "UTF-8"; @import "./file.css"; diff --git a/test/__snapshots__/sourceMap-options.test.js.snap b/test/__snapshots__/sourceMap-options.test.js.snap index 1033bc53..8259d51e 100644 --- a/test/__snapshots__/sourceMap-options.test.js.snap +++ b/test/__snapshots__/sourceMap-options.test.js.snap @@ -869,7 +869,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:10"", +@import "sass-embedded-legacy-load-done:11"", ], "version": 3, } @@ -2107,7 +2107,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:9"", +@import "sass-embedded-legacy-load-done:10"", ], "version": 3, } @@ -3344,7 +3344,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:8"", +@import "sass-embedded-legacy-load-done:9"", ], "version": 3, } @@ -4581,7 +4581,7 @@ nav ", "$n-ary-summation: '\\2211' -@import "sass-embedded-legacy-load-done:7"", +@import "sass-embedded-legacy-load-done:8"", ], "version": 3, } @@ -4954,6 +4954,1271 @@ exports[`sourceMap option should generate source maps when value is not specifie exports[`sourceMap option should generate source maps when value is not specified and the "devtool" option has "source-map" value ('sass-embedded', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "sourcesContent": [ + "@import "another/variables" +@import "./file.css" + +$font-stack: Helvetica, sans-serif +$primary-color: #333 +$pi: '\\e0C6' + +body + font: 100% $font-stack + color: $primary-color + +nav + ul + margin: 0 + padding: 0 + list-style: none + + li + display: inline-block + + a + display: block + padding: 6px 12px + text-decoration: none + +=border-radius($radius) + -webkit-border-radius: $radius + -moz-border-radius: $radius + -ms-border-radius: $radius + border-radius: $radius + +.box + +border-radius(10px) + +.message + border: 1px solid #ccc + padding: 10px + color: #333 + +.success + @extend .message + border-color: green + +.error + @extend .message + border-color: red + +.warning + @extend .message + border-color: yellow + +.foo + &:before + content: $pi + +.bar + &:before + content: $n-ary-summation + +", + "$n-ary-summation: '\\2211' +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } + +.foo { + &:before { + content: $pi; + } +} + +.bar { + &:before { + content: $n-ary-summation; + } +} +", + "$n-ary-summation: '\\2211' +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('dart-sass', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.message, .success, .error, .warning { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + border-color: green; } + +.error { + border-color: red; } + +.warning { + border-color: yellow; } + +.foo:before { + content: ""; } + +.bar:before { + content: "∑"; } + +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACA,OAAO,CAAP,eAAO;AAMP,AAAA,IAAI,CAAC;EACH,IAAI,EAAE,IAAI,CALI,SAAS,EAAE,UAAU;EAMnC,KAAK,EALS,IAAI,GAKM;;AAE1B,AACE,GADC,CACD,EAAE,CAAC;EACD,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI,GAAG;;AAJvB,AAME,GANC,CAMD,EAAE,CAAC;EACD,OAAO,EAAE,YAAY,GAAG;;AAP5B,AASE,GATC,CASD,CAAC,CAAC;EACA,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,eAAe,EAAE,IAAI,GAAG;;AAQ5B,AAAA,IAAI,CAAC;EALH,qBAAqB,EAME,IAAI;EAL3B,kBAAkB,EAKK,IAAI;EAJ3B,iBAAiB,EAIM,IAAI;EAH3B,aAAa,EAGU,IAAI,GAAI;;AAEjC,AAAA,QAAQ,EAKR,QAAQ,EAIR,MAAM,EAIN,QAAQ,CAbC;EACP,MAAM,EAAE,cAAc;EACtB,OAAO,EAAE,IAAI;EACb,KAAK,EAAE,IAAI,GAAG;;AAEhB,AAAA,QAAQ,CAAC;EAEP,YAAY,EAAE,KAAK,GAAG;;AAExB,AAAA,MAAM,CAAC;EAEL,YAAY,EAAE,GAAG,GAAG;;AAEtB,AAAA,QAAQ,CAAC;EAEP,YAAY,EAAE,MAAM,GAAG;;AAEzB,AACE,IADE,AACD,OAAO,CAAC;EACP,OAAO,EAhDK,IAAO,GAgDJ;;AAEnB,AACE,IADE,AACD,OAAO,CAAC;EACP,OAAO,ECzDO,IAAO,GDyDO", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; } + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; } + + li { + display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; } } + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; } + +.box { + @include border-radius(10px); } + +.message { + border: 1px solid #ccc; + padding: 10px; + color: #333; } + +.success { + @extend .message; + border-color: green; } + +.error { + @extend .message; + border-color: red; } + +.warning { + @extend .message; + border-color: yellow; } + +.foo { + &:before { + content: $pi; } } + +.bar { + &:before { + content: $n-ary-summation; } } + +", + "$n-ary-summation: '\\2211'; +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import url(./file.css); +body { + font: 100% Helvetica, sans-serif; + color: #333; } + +nav ul { + margin: 0; + padding: 0; + list-style: none; } + +nav li { + display: inline-block; } + +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; } + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; } + +.foo:before { + content: ""; } + +.bar:before { + content: "∑"; } + +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACA,OAAO,CAAP,eAAO;AAMP,AAAA,IAAI,CAAC;EACH,IAAI,EAAE,IAAI,CALI,SAAS,EAAE,UAAU;EAMnC,KAAK,EALS,IAAI,GAMnB;;AAED,AACE,GADC,CACD,EAAE,CAAC;EACD,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI,GACjB;;AALH,AAOE,GAPC,CAOD,EAAE,CAAC;EAAE,OAAO,EAAE,YAAY,GAAI;;AAPhC,AASE,GATC,CASD,CAAC,CAAC;EACA,OAAO,EAAE,KAAK;EACd,OAAO,EAAE,QAAQ;EACjB,eAAe,EAAE,IAAI,GACtB;;AAUH,AAAA,IAAI,CAAC;EANH,qBAAqB,EAMO,IAAI;EAL7B,kBAAkB,EAKO,IAAI;EAJ5B,iBAAiB,EAIO,IAAI;EAHxB,aAAa,EAGO,IAAI,GAAK;;AAEvC,AACE,IADE,AACD,OAAO,CAAC;EACP,OAAO,EAlCK,IAAO,GAmCpB;;AAGH,AACE,IADE,AACD,OAAO,CAAC;EACP,OAAO,EC7CO,IAAO,GD8CtB", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } + +.foo { + &:before { + content: $pi; + } +} + +.bar { + &:before { + content: $n-ary-summation; + } +} +", + "$n-ary-summation: '\\2211' +", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('node-sass', 'legacy' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "sourcesContent": [ + "@import "another/variables" +@import "./file.css" + +$font-stack: Helvetica, sans-serif +$primary-color: #333 +$pi: '\\e0C6' + +body + font: 100% $font-stack + color: $primary-color + +nav + ul + margin: 0 + padding: 0 + list-style: none + + li + display: inline-block + + a + display: block + padding: 6px 12px + text-decoration: none + +=border-radius($radius) + -webkit-border-radius: $radius + -moz-border-radius: $radius + -ms-border-radius: $radius + border-radius: $radius + +.box + +border-radius(10px) + +.message + border: 1px solid #ccc + padding: 10px + color: #333 + +.success + @extend .message + border-color: green + +.error + @extend .message + border-color: red + +.warning + @extend .message + border-color: yellow + +.foo + &:before + content: $pi + +.bar + &:before + content: $n-ary-summation + +", + "$n-ary-summation: '\\2211' + +@import "sass-embedded-legacy-load-done:15"", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "sourcesContent": [ + "@import "another/variables"; +@import "./file.css"; + +$font-stack: Helvetica, sans-serif; +$primary-color: #333; +$pi: '\\e0C6'; + +body { + font: 100% $font-stack; + color: $primary-color; +} + +nav { + ul { + margin: 0; + padding: 0; + list-style: none; + } + + li { display: inline-block; } + + a { + display: block; + padding: 6px 12px; + text-decoration: none; + } +} + +@mixin border-radius($radius) { + -webkit-border-radius: $radius; + -moz-border-radius: $radius; + -ms-border-radius: $radius; + border-radius: $radius; +} + +.box { @include border-radius(10px); } + +.foo { + &:before { + content: $pi; + } +} + +.bar { + &:before { + content: $n-ary-summation; + } +} +", + "$n-ary-summation: '\\2211' + +;@import "sass-embedded-legacy-load-done:7";", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'legacy' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern' API, 'scss' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.message, .warning, .error, .success { + border: 1px solid #ccc; + padding: 10px; + color: #333; +} + +.success { + border-color: green; +} + +.error { + border-color: red; +} + +.warning { + border-color: yellow; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AAQd;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;;AAQJ;EALE,uBAMe;EALf,oBAKe;EAJf,mBAIe;EAHf,eAGe;;;AAEjB;EACE;EACA;EACA;;;AAEF;EAEE;;;AAEF;EAEE;;;AAEF;EAEE;;;AAGA;EACE,SAhDY;;;AAmDd;EACE,SCzDc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./sass/language.sass", + "webpack://sassLoaderExport/./sass/another/variables.sass", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'sass' syntax): warnings 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): css 1`] = ` +"@charset "UTF-8"; +@import "./file.css"; +body { + font: 100% Helvetica, sans-serif; + color: #333; +} + +nav ul { + margin: 0; + padding: 0; + list-style: none; +} +nav li { + display: inline-block; +} +nav a { + display: block; + padding: 6px 12px; + text-decoration: none; +} + +.box { + -webkit-border-radius: 10px; + -moz-border-radius: 10px; + -ms-border-radius: 10px; + border-radius: 10px; +} + +.foo:before { + content: "\\e0c6"; +} + +.bar:before { + content: "∑"; +} +/*# sourceMappingURL=language.css.map*/" +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): errors 1`] = `[]`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): source map 1`] = ` +{ + "file": "static/language.css", + "mappings": ";AACQ;AAMR;EACE;EACA,OALc;;;AASd;EACE;EACA;EACA;;AAGF;EAAK;;AAEL;EACE;EACA;EACA;;;AAWJ;EANE,uBAM4B;EALzB,oBAKyB;EAJxB,mBAIwB;EAHpB,eAGoB;;;AAG5B;EACE,SAlCY;;;AAuCd;EACE,SC7Cc", + "names": [], + "sourceRoot": "", + "sources": [ + "webpack://sassLoaderExport/./scss/language.scss", + "webpack://sassLoaderExport/./scss/another/_variables.scss", + ], + "version": 3, +} +`; + +exports[`sourceMap option should generate sourcemap with "asset/resource" ('sass-embedded', 'modern-compiler' API, 'scss' syntax): warnings 1`] = `[]`; + exports[`sourceMap option should not generate source maps when value has "false" value and the "devtool" option has "false" value ('dart-sass', 'legacy' API, 'sass' syntax): css 1`] = ` "@charset "UTF-8"; @import "./file.css"; diff --git a/test/sourceMap-options.test.js b/test/sourceMap-options.test.js index e504203b..6baeba24 100644 --- a/test/sourceMap-options.test.js +++ b/test/sourceMap-options.test.js @@ -234,6 +234,67 @@ describe("sourceMap option", () => { await close(compiler); }); + + it(`should generate sourcemap with "asset/resource" ('${implementationName}', '${api}' API, '${syntax}' syntax)`, async () => { + const testId = getTestId("language", syntax); + const compiler = getCompiler(testId, { + devtool: "source-map", + rules: [ + { + test: /\.(scss|sass)$/i, + type: "asset/resource", + generator: { + binary: false, + filename: "static/[name].css", + }, + use: [ + { + loader: path.join(__dirname, "../src/cjs.js"), + options: { + implementation, + api, + sourceMap: true, + }, + }, + ], + }, + ], + }); + const stats = await compile(compiler); + + const usedFs = compiler.outputFileSystem; + const outputPath = stats.compilation.outputOptions.path; + const targetFile = "static/language.css"; + + let css; + + try { + css = usedFs + .readFileSync(path.join(outputPath, targetFile)) + .toString(); + } catch (error) { + throw error; + } + + const targetMapFile = "static/language.css.map"; + + let sourceMap; + + try { + sourceMap = usedFs + .readFileSync(path.join(outputPath, targetMapFile)) + .toString(); + } catch (error) { + throw error; + } + + expect(css).toMatchSnapshot("css"); + expect(JSON.parse(sourceMap)).toMatchSnapshot("source map"); + expect(getWarnings(stats)).toMatchSnapshot("warnings"); + expect(getErrors(stats)).toMatchSnapshot("errors"); + + await close(compiler); + }); }); }); });