Как включить node-sass в nwjs (в windows)

Я работаю над многоплатформенным проектом в NW.js (node-webkit), и он должен использовать node-sass. Проблема в том, что я не могу найти способ включить его без ошибки в Windows (x64).

Вот что я пробовал:

  1. Требовать как есть
    Ошибка: не удалось выполнить процедуру инициализации библиотеки динамической компоновки (DLL).
  2. Выполните сборку с помощью встроенного скрипта node-sass и затем потребуйте
    Ошибка: не удалось выполнить процедуру инициализации библиотеки динамической компоновки (DLL).
  3. Сборка с помощью node-gyp
    Ошибка: не удалось выполнить процедуру инициализации библиотеки динамической компоновки (DLL).
  4. Сборка с помощью nw-gyp (сбой команды configure)
    Ошибка: имя 'component' не определено при оценке условия 'OS == "win" и component == "shared_library" в binding.gyp при попытке загрузить binding.gyp

Я тестировал это в Windows 10 (x64), node v6.5.0, NW.js v0.16.1 и v0.17.0, node-sass (последний).

Спасибо за вашу помощь!


person kristóf baján    schedule 13.09.2016    source источник
comment
Столкнулся с подобной проблемой   -  person Gennady Dogaev    schedule 25.09.2016


Ответы (2)


Я столкнулся с аналогичной проблемой (но на Linux) и не смог найти ответа, почему node-sass не работает и как это исправить. Но sass.js у меня работает (рабочий + скрипт). Конечно, это не так удобно, как node-sass (т.е. вам нужно обрабатывать импорт особым образом), но для моих нужд он отлично работает.

person Gennady Dogaev    schedule 25.09.2016

В итоге я сделал следующее:

Я создал оболочку вокруг node-sass, которая вызывает node-sass как дочерний процесс (через cli).

const { exec } = require('child_process');
module.exports = function (options, cb) {
    // turn the options to node-sass cli args
    // something like this...
    exec(`node-sass ${agrs}`, execOptions, cb);
}

Работает как шарм! ;)

person kristóf baján    schedule 20.04.2018