在将node-gyp标志传递给包时,yarn添加包--build-from-source的行为类似于npm安装包--build-from-source吗?

时间:2017-08-18 13:56:28

标签: node.js npm node-gyp yarnpkg

看起来npm install sqlite3@3.1.6 \ --build-from-source \ --sqlite_libname=sqlcipher \ --sqlite=`brew --prefix` \ --verbose 没有像--sqlite_libname那样将node-gyp标志传递给本机包。

例如,尝试使用以下命令安装sqlite3@3.1.6时

--sqlite

我们成功安装了带有sqlcipher扩展的sqlite3,因为传递了binding.gypyarn,这些是specified在sqlite3' s yarn add sqlite3@3.1.6 \ --force \ --build-from-source \ --sqlite_libname=sqlcipher \ --sqlite=`brew --prefix` \ --verbose

但是,当尝试使用npm并运行我认为是等效的命令时,看起来标志并不值得尊重:

yarn

使用yarn无法识别的命令行参数转换为gyp标志。

let delayDuration:Double = 1.0 /* In seconds */ let totalDelayTime = DispatchTime.now() + delayDuration DispatchQueue.main.asyncAfter(deadline: totalDelayTime, execute: { view?.isPaused = true }) 似乎不起作用。

有没有办法通过view?.isPaused获得此功能?

2 个答案:

答案 0 :(得分:2)

Yarn不会自动将install命令的--参数暴露给生命周期脚本(依赖项的package.json中的pre / post / install脚本)。 以下是Yarn为脚本执行https://github.com/yarnpkg/yarn/blob/master/src/util/execute-lifecycle-script.js#L39构建Env的代码。

您可以通过.yarnrc中的env设置传递特定值,并根据.yarnrc / .npmrc配置构建npm_config_*设置。

答案 1 :(得分:0)

当前可以通过使用格式为npm_config_{snake_case_param}=true/false的环境变量来实现

例如,npm install --build-from-source=true变为:

npm_config_build_from_source=true yarn install

这里https://yarnpkg.com/lang/en/docs/envvars/#toc-npm-config