Node.js 为什么我必须以“开始”开始一些脚本;npm启动x";和其他带有“的;npm x“;只有
在我的package.json中,我有以下脚本定义部分Node.js 为什么我必须以“开始”开始一些脚本;npm启动x";和其他带有“的;npm x“;只有,node.js,angular,npm,Node.js,Angular,Npm,在我的package.json中,我有以下脚本定义部分 "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build --prod", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, ... 每当我想运行应用程序时,我都会进入npm start(执行ng serve)。我也可以去npm跑步开始达到同样的效果。现在,当我尝试构建我的应用程序时,我使用了
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}, ...
每当我想运行应用程序时,我都会进入npm start(执行ng serve)。我也可以去npm跑步开始达到同样的效果。现在,当我尝试构建我的应用程序时,我使用了npm build,但与我的预期相反,没有执行任何构建(没有错误,也没有错误,只有在执行完成时没有输出到控制台)。我不得不改用npm运行build(当然是执行ng build--prod)
我不理解这种差异。您可以直接运行npm“本机”脚本,对于自定义脚本,您必须npm运行{customscript}
npm start
和npm test
是特殊值,您可以在不使用。。。不用使用这个词就可以运行
npm run
实际上是npm run script
的快捷方式,它允许您运行写入包.json的scripts
属性的脚本
但是npm run
也可以运行位于节点\ u modules/.bin
文件夹中的脚本
这意味着您可以运行npm-run-mocha
,而不是mocha-test
否则,npm是一个可执行文件,可以与npm[command]
一起使用
EDIT如果您想知道,start
和test
是特定的,不需要run关键字,因为它们是最常用的关键字,使用它们可以让您快速运行长命令
发射不是很好吗
npm test
而不是
ng test --code-coverage --reporters mocha,progress,jkhtml --browsers chrome,phantomjs -sm=false
我明白了。应该有帮助的automagic。但我想知道当我去npm构建时发生了什么。因为没有运行,脚本不会被执行,但是执行的是什么?!嗯,我什么也不想说,但是您可能可以安装一个名为build withnpmi-g build
的包,这应该会启动所述包。顺便说一下,我编辑了我的答案,请随意看!是的+1和据此。