Является ли пряжа добавить пакет --build-from-source ведет себя как пакет установки npm --build-from-source при передаче флагов node -gyp в пакеты?
Похоже, что yarn
не передает флаги node -gyp для собственных пакетов способом npm
.
Например, при попытке установить [email protected] с помощью
npm install [email protected] \
--build-from-source \
--sqlite_libname=sqlcipher \
--sqlite=`brew --prefix` \
--verbose
мы получаем успешную установку sqlite3 с расширениями sqlcipher из-за прохождения --sqlite_libname
и --sqlite
, которые указаны в sqlite3 binding.gyp
.
Но при попытке использовать yarn
и запускать то, что я думаю, будет эквивалентной командой, похоже, что флаги не соблюдаются:
yarn add [email protected] \
--force \
--build-from-source \
--sqlite_libname=sqlcipher \
--sqlite=`brew --prefix` \
--verbose
С npm
непризнанные аргументы командной строки преобразуются в gyp-флаги.
С yarn
, который, похоже, не работает.
Есть ли способ получить эту функциональность с помощью yarn
?
Ответы
Ответ 1
Пряжа не раскрывает аргументы --
команды install для сценариев жизненного цикла (pre/post/install scripts в package.json зависимостей).
Вот код, где Yarn строит Env для выполнения script https://github.com/yarnpkg/yarn/blob/master/src/util/execute-lifecycle-script.js#L39.
Вы можете передавать определенные значения с помощью параметра env
в .yarnrc, а также строит настройки npm_config_*
на основе конфигурации .yarnrc/.npmrc.