npm运行:执行另一个(不正确)脚本
这是我的npm运行:执行另一个(不正确)脚本,npm,npm-scripts,Npm,Npm Scripts,这是我的包的脚本部分。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", "t
包的脚本部分。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
脚本重命名为prebuild
(在package.json
中),一切都会好起来:
> npm run build -- --prod
> project@0.1.1 build ...
> ng build "--prod"
...
现在,如果我回到后面,问题又出现了
这是“正确的”,因为这是npm的记录行为-请参阅
此外,可以通过运行npm run script
执行任意脚本。具有匹配名称的Pre和post命令也将针对这些脚本运行(例如,premyscript
,myscript
,postmyscript
)
通常,脚本的前缀可以是pre
或post
,以在脚本之前或之后执行操作
<> PN>在选择NPM脚本名称时,最好考虑前缀<代码>预<代码>和<代码> POST <代码>(除非您希望它们总是在主任务之前或之后运行)。 前钩子和后挂钩由NPM自动运行。如果您在package.json中定义了预构建,npm将在您要求它运行构建时自动运行它。同样的情况也适用于柱钩
您可以在这里查看文档
> npm -v
6.7.0