12

我正在使用npm 作为构建工具,所以在我package.json的 中,我的一些脚本依赖于其他脚本:

{
  "test": "npm run lint && mocha"
}

这会将npm包管理器硬编码为package.json. 如何使这种表达依赖关系的方法同时npm与 和一起使用yarn

4

2 回答 2

32

环境变量是$npm_execpath指构建工具,所以只需替换npm$npm_execpath

{
  "test": "$npm_execpath run lint && mocha"
}

两者都可以工作,npm test并且yarn test会使用适当的构建工具。

于 2017-01-14T08:03:36.550 回答
10

虽然 mjs 的回答很好,但还有一个小包据称适用于包括 Windows 在内的所有环境:https ://www.npmjs.com/package/yarpm

要在项目中使用,请运行yarn add yarpm --dev/ npm i -D yarpm,然后在脚本中使用 yarpm,如下所示:

{
  "test": "yarpm run lint && mocha"
}

正如包自述文件所指出的,您只需要确保您的命令适合传递给yarnnpm:您不能使用仅适用于一个包管理器的参数/标志。

于 2017-10-10T07:02:38.707 回答