npm run:执行另一个(不正确的)脚本

时间:2019-02-14 04:23:48

标签: npm npm-scripts

这是我的scripts的{​​{1}}部分:

package.json

很棒的事情是当我尝试执行"scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "compile-prebuild": "tsc -p prebuild-tsconfig.json --pretty", "prebuild": "ts-node --project PreBuild/tsconfig.json PreBuild/prebuild.ts", "testJs": "node test.js", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e", "extract-i18n": "ng xi18n Paradise --i18n-format=xlf2 --output-path=i18n --i18n-locale=en && ng run Paradise:xliffmerge" }, npm run build另一个脚本(npm run build -- --prod)时

prebuild

现在,如果我将> npm run build -- --prod > project@0.1.1 prebuild ... > ts-node --project PreBuild/tsconfig.json PreBuild/prebuild.ts 脚本重命名为prebuild(在pre-build中),一切都会好起来的:

package.json

现在,如果我退回去,问题又出现了!


> npm run build -- --prod

> project@0.1.1 build ...
> ng build "--prod"
...

2 个答案:

答案 0 :(得分:1)

这是“正确的”,因为这是npm的记录行为-请参见here

  

此外,可以通过运行npm run-script <stage>执行任意脚本。具有匹配名称的前后命令也将针对它们运行(例如premyscriptmyscriptpostmyscript)。

通常,脚本可以以prepost开头,以在脚本之前或之后执行操作。

选择npm脚本名称时,最好考虑将前缀prepost保留下来(当然,除非您希望它们始终在主要任务之前或之后运行)。

答案 1 :(得分:1)

pre和post挂钩由npm自动运行。如果在package.json中定义了预构建,则npm会在要求其运行构建时自动运行它。帖子挂钩也是如此。

您可以在此处查看文档。 https://docs.npmjs.com/misc/scripts