使用 Yarn 从另一个脚本调用一个脚本
Posted
技术标签:
【中文标题】使用 Yarn 从另一个脚本调用一个脚本【英文标题】:Calling one script from another with Yarn 【发布时间】:2020-03-22 19:56:20 【问题描述】:下面是一个示例,如何使用npm
在package.json
中运行另一个脚本。
yarn
的等价物是什么?
"name": "npm-scripts-example",
"version": "1.0.0",
"description": "npm scripts example",
"scripts":
"clean": "rimraf ./dist && mkdir dist",
"prebuild": "npm run clean",
【问题讨论】:
"prebuild": "yarn run clean",
然后yarn run prebuild
应该工作不?你可以做yarn run clean
tho
因为我用"scripts": "test": "yarn -v", "test2": "yarn run test"
进行了测试,然后yarn run test2
工作得很好。同样根据yarnpkg.com/lang/fr/docs/cli/run yarn run 应该只适用于 package.json 脚本部分中的任何脚本
对不起,你是 100% 正确的。不知道为什么它最初对我不起作用。
没问题,很高兴能帮到你:)
如果您希望脚本使用 npm 或 yarn 运行,请考虑使用 yarpm。例如:"prebuild": "yarpm run clean"
您还可以在 *nix 上使用 $npm_execpath
环境变量 - 如 here 所述。例如"prebuild": "$npm_execpath run clean",
。但是,Windows cmd.exe 使用 %...%
语法引用变量 - 例如 "prebuild": "%npm_execpath% run clean"
。
【参考方案1】:
你可以这样做
"name": "npm-scripts-example",
"version": "1.0.0",
"description": "npm scripts example",
"scripts":
"clean": "rimraf ./dist && mkdir dist",
"prebuild": "yarn run clean",
然后命令yarn run prebuild
应该可以工作。
你也可以这样做yarn run clean
。
run
cli 的文档:https://yarnpkg.com/lang/en/docs/cli/run/
【讨论】:
【参考方案2】:改进了@l-faros 的答案,Yarn 还支持更短的语法
"scripts":
"clean": "rimraf ./dist && mkdir dist",
"prebuild": "yarn clean",
和yarn prebuild
运行脚本命令。
语法允许省略run
参数。
文档:https://classic.yarnpkg.com/en/docs/cli/#toc-user-defined-scripts
【讨论】:
以上是关于使用 Yarn 从另一个脚本调用一个脚本的主要内容,如果未能解决你的问题,请参考以下文章
在 node package.json 中,使用额外参数从另一个脚本调用脚本,在这种情况下添加 mocha watcher
我可以从另一个 shell 脚本调用一个 shell 脚本的函数吗?