В моем модуле узла я использую большую библиотеку в исходном коде, которая требует времени для компиляции. Я считаю, что это связано с настройкой --no-parallel
, используемой по умолчанию node-gyp. Теперь мне интересно, можно ли параллельно создавать файлы cpp node-gyp, чтобы ускорить этот процесс. Я не мог найти ничего, что могло бы помочь на GYP format reference page. Есть ли настройка для моего проекта gyp-файла или взлома для node-gyp?Как включить параллельные сборки node-gyp?
ответ
Просто добавьте в файл package.json:
"scripts": {
"install": "node-gyp rebuild -j 8"
},
Глядя на the code, это может также работать:
$ env JOBS=8 npm install ...
Правда, вы можете установить параметр среды, но я действительно предпочел бы вариант в gyp-файле, чтобы он работал во всех ситуациях (для dev, в Travis или другом CI env и, в частности, для ваших пользователей). –
@MikeLischke как вы запускаете сборку? По моему опыту с собственными модулями вы добавляете скрипт 'build' в' package.json', который также может включать переменную среды ('' build ":" env JOBS = 8 node-gyp ... "') , – robertklep
Для Travis я попробовал параметр install:, и это выполнило мою команду, только чтобы сообщить об ошибке, что я не могу найти node-gyp. Но, может быть, я должен попробовать вариант сборки: тогда? –
Для руководства сборки из командной строки, 'узел-лавочка сборки - j 8' также работает так, как вы ожидали. В отличие от GNU Make, '-j8' ничего не делает, даже не предупреждая. Довольно плохое управление командами командной строки:/ –