package.json 适用于 npm 和 yarn 的脚本?
package.json scripts that work with npm and yarn?
我正在使用 npm as a build tool,所以在我的 package.json
中,我的一些脚本依赖于其他脚本:
{
"test": "npm run lint && mocha"
}
这会将 npm
包管理器硬编码到 package.json
中。如何使这种表达依赖关系的方法同时适用于 npm
和 yarn
?
$npm_execpath
环境变量指的是构建工具,所以只需将 npm
替换为 $npm_execpath
:
{
"test": "$npm_execpath run lint && mocha"
}
npm test
和 yarn test
都可以工作,并且会使用适当的构建工具。
虽然 mjs 的回答很好,但还有一个小包据称适用于所有环境,包括 Windows:https://www.npmjs.com/package/yarpm
要在项目中使用,运行 yarn add yarpm --dev
/ npm i -D yarpm
然后像这样在脚本中使用 yarpm:
{
"test": "yarpm run lint && mocha"
}
正如包 README 所指出的,您只需要确保您的命令适合传递给 yarn 或 npm:您不能使用 arguments/flags只能在一个包管理器上工作。
我正在使用 npm as a build tool,所以在我的 package.json
中,我的一些脚本依赖于其他脚本:
{
"test": "npm run lint && mocha"
}
这会将 npm
包管理器硬编码到 package.json
中。如何使这种表达依赖关系的方法同时适用于 npm
和 yarn
?
$npm_execpath
环境变量指的是构建工具,所以只需将 npm
替换为 $npm_execpath
:
{
"test": "$npm_execpath run lint && mocha"
}
npm test
和 yarn test
都可以工作,并且会使用适当的构建工具。
虽然 mjs 的回答很好,但还有一个小包据称适用于所有环境,包括 Windows:https://www.npmjs.com/package/yarpm
要在项目中使用,运行 yarn add yarpm --dev
/ npm i -D yarpm
然后像这样在脚本中使用 yarpm:
{
"test": "yarpm run lint && mocha"
}
正如包 README 所指出的,您只需要确保您的命令适合传递给 yarn 或 npm:您不能使用 arguments/flags只能在一个包管理器上工作。