package.json 脚本可以与npm 和yarn 一起使用吗?

问题描述 投票:0回答:2

我使用 npm 作为构建工具,所以在我的

package.json
中,我的一些脚本依赖于其他脚本:

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

这会将

npm
包管理器硬编码到
package.json
中。如何使这种表达依赖关系的方法同时适用于
npm
yarn

node.js npm yarnpkg
2个回答
34
投票

环境变量

$npm_execpath
指的是构建工具,因此只需将
npm
替换为
$npm_execpath
:

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

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

注意! 这不适用于 Windows 机器。


10
投票

虽然 mjs 的答案很棒,但还有一个小软件包据称可以在包括 Windows 在内的所有环境上工作:https://www.npmjs.com/package/yarpm

要在项目中使用,请运行

yarn add yarpm --dev
/
npm i -D yarpm
,然后在脚本中使用 yarpm,如下所示:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.