【发布时间】:2020-02-14 22:44:56
【问题描述】:
我正在尝试减少 package.json 中的脚本重复。如果我可以参数化脚本,那会很有帮助。
如何从脚本中的任意位置访问参数(并将其保存在 package.json 中,而不是为此创建外部 js 文件),而不仅仅是让节点将参数附加到行尾? 请注意,在某些情况下,我想多次使用同一个参数。
例如
这是我目前拥有的,并且有效:
{
"name": "angular-apps",
"scripts": {
"start-drt": "ng serve data-review --open",
"build-drt": "ng lint data-review --type-check && ng build data-review",
"build-drt-prod": "ng lint data-review --type-check && node replace-nonce data-review && ng build data-review --prod --progress=false && ng test data-review --watch=false --reporters teamcity",
... // etc.
/* There are several more application scripts that aren't listed.
The only difference is the project name (e.g. `data-review` in this case).
They all follow the same pattern as the set of scripts above. */
我想要的是这样的(这不起作用,因为它试图使用 $1 字面意思而不是变量):
{
"name": "angular-apps",
"scripts": {
"start-app": "ng serve $1 --open",
"build-app": "ng lint $a --type-check && ng build $a",
"build-app-prod": "ng lint $1 --type-check && node replace-nonce $1 && ng build $1 --prod --progress=false && ng test $1 --watch=false --reporters teamcity",
"start-drt": "npm run start-app data-review",
"build-drt": "npm run build-app data-review",
"build-drt-prod": "npm run build-app-prod data-review",
"start-sat": "npm run start-app section-analysis",
"build-sat": "npm run build-app section-analysis",
"build-sat-prod": "npm run build-app-prod section-analysis",
... // etc. Now I can add more apps and re-use the same scripts for all of them
【问题讨论】:
-
是的......我认为这是一个骗局。基本上......如果没有 Bash 或外部脚本,我想做的事情就无法完成...... :-(
标签: node.js angular package.json