@@ -44,6 +44,8 @@ void main(List<String> args) {
44
44
target: pkg.JSRequireTarget .node, identifier: 'nodeModule' ),
45
45
pkg.JSRequire ("stream" , target: pkg.JSRequireTarget .node),
46
46
pkg.JSRequire ("util" , target: pkg.JSRequireTarget .node),
47
+ pkg.JSRequire ("./sass-embedded" ,
48
+ target: pkg.JSRequireTarget .cli, identifier: 'sass_embedded' ),
47
49
];
48
50
pkg.jsModuleMainLibrary.value = "lib/src/js.dart" ;
49
51
pkg.npmPackageJson.fn = () =>
@@ -130,6 +132,8 @@ void main(List<String> args) {
130
132
131
133
afterTask ("pkg-npm-dev" , _addDefaultExport);
132
134
afterTask ("pkg-npm-release" , _addDefaultExport);
135
+ afterTask ("pkg-npm-dev" , _addOptionalSassEmbedded);
136
+ afterTask ("pkg-npm-release" , _addOptionalSassEmbedded);
133
137
134
138
grind (args);
135
139
}
@@ -302,6 +306,28 @@ function defaultExportDeprecation() {
302
306
File ("build/npm/sass.node.mjs" ).writeAsStringSync (buffer.toString ());
303
307
}
304
308
309
+ /// After building the NPM package, write a wrapper script to lazily
310
+ /// require "sass-embedded/embedded".
311
+ void _addOptionalSassEmbedded () {
312
+ var buffer = """
313
+ const path = require('path');
314
+
315
+ module.exports = (function () {
316
+ try {
317
+ return require(path.join(path.dirname(require.resolve('sass-embedded')), 'src', 'embedded', 'index.js'));
318
+ } catch (_) {
319
+ return {
320
+ main: function () {
321
+ console.error('`sass --embedded` requires "sass-embedded" package in pure JS mode.');
322
+ process.exitCode = 1;
323
+ }
324
+ }
325
+ }
326
+ })();
327
+ """ ;
328
+ File ("build/npm/sass-embedded.js" ).writeAsStringSync (buffer);
329
+ }
330
+
305
331
/// A regular expression to locate the language repo revision in the Dart Sass
306
332
/// Homebrew formula.
307
333
final _homebrewLanguageRegExp = RegExp (
0 commit comments