Запуск dart-sass в браузере официально не поддерживается (# 25), но, возможно, кто-то может подсказать мне, как это отладить (очень сложно без исходных карт для кода Dart).
Error: Error: Illegal invocation
at Object.AU (http://localhost:5000/ParcelWorker.cc8dae65.js:536605:15)
at w6.$2 (http://localhost:5000/ParcelWorker.cc8dae65.js:556087:53)
at u6.v7 (http://localhost:5000/ParcelWorker.cc8dae65.js:543941:33)
at u6.v6 (http://localhost:5000/ParcelWorker.cc8dae65.js:543945:19)
at ik.uh (http://localhost:5000/ParcelWorker.cc8dae65.js:542621:20)
at tF.$0 (http://localhost:5000/ParcelWorker.cc8dae65.js:542922:19)
at Object.ex (http://localhost:5000/ParcelWorker.cc8dae65.js:529758:55)
at aj.bb (http://localhost:5000/ParcelWorker.cc8dae65.js:542753:9)
at iz.bb (http://localhost:5000/ParcelWorker.cc8dae65.js:542606:14)
at iz.cA (http://localhost:5000/ParcelWorker.cc8dae65.js:542577:12)
Это происходит при добавлении любого импортера (даже импортера noop).Выполнение этого кода в основном потоке (с использованием только require
) работает нормально.Ошибка выдается без выполнения импортера один раз.
/* index.js */
// this works:
require("./worker.js");
// this doesn't:
const worker = new Worker("./worker.js");
worker.onerror = console.error;
/* worker.js */
self.Buffer = require("buffer").Buffer;
const sass = require("sass");
const data = `$colorRed: red;
#header {
color: $colorRed;
}`;
function run() {
return sass.renderSync({
data,
importer: [
(url, prev, done) => {
return { file: url };
}
]
});
}
console.log(run().css.toString("utf8"));
Полное воспроизведение (просто запустите npm i
и npm start
): https://github.com/mischnic/sass-worker-importer - ошибка выводится наконсоль