在我的package.json中,我有以下部分用于脚本定义。
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}, ...
每当我想运行应用程序时,我都会npm start(它执行ngserve)。我也可以通过 npm run start 实现相同的结果。现在,当我尝试构建我的应用程序时,我进行了 npm build 但与我的预期相反,没有执行任何构建(没有错误,也没有,执行完成时没有任何输出到控制台) 。我必须改为npm run build(当然,它执行了ng build --prod)。
我不明白其中的差异。
最佳答案
npm start
和 npm test
是特殊值,您可以在不使用“run”一词的情况下运行。
npm run
实际上是 npm run-script
的快捷方式,它允许您运行编写到 package.json
的 scripts
属性中的脚本。
但是 npm run
也可以运行位于 node_modules/.bin
文件夹中的脚本。
例如,这意味着您可以运行 npm run mocha
而不是 mocha test
。
否则,npm 是一个可执行文件,可以与 npm [command]
一起使用。
编辑如果您想知道,start
和test
是特定的,不需要run关键字,因为它们是最常用的关键字,并且使用它们可以让您非常快速地运行长命令。
启动是不是很好
npm test
而不是
ng test --code-coverage --reporters mocha,progress,jkhtml --browsers chrome,phantomjs -sm=false
???
关于node.js - 为什么我必须使用 "npm start x"启动某些脚本,而其他脚本仅使用 "npm x"启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48207345/