node.js - 为什么我必须使用 "npm start x"启动某些脚本,而其他脚本仅使用 "npm x"启动?

标签 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(它执行ngserve)。我也可以通过 npm run start 实现相同的结果。现在,当我尝试构建我的应用程序时,我进行了 npm build 但与我的预期相反,没有执行任何构建(没有错误,也没有,执行完成时没有任何输出到控制台) 。我必须改为npm run build(当然,它执行了ng build --prod)。

我不明白其中的差异。

最佳答案

npm startnpm test 是特殊值,您可以在不使用“run”一词的情况下运行。

npm run 实际上是 npm run-script 的快捷方式,它允许您运行编写到 package.jsonscripts 属性中的脚本。

但是 npm run 也可以运行位于 node_modules/.bin 文件夹中的脚本。

例如,这意味着您可以运行 npm run mocha 而不是 mocha test

否则,npm 是一个可执行文件,可以与 npm [command] 一起使用。

编辑如果您想知道,starttest是特定的,不需要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/

相关文章:

无法找到 Angular Material MatTableDataSource

node.js - create-react-app my-app ...找不到命令

node.js - 使用 npm run serve 命令时出现错误 : getaddrinfo ENOTFOUND x86_64-apple-darwin13. 4.0

node.js - 代理和重定向有什么区别

Angular 2 : get all <img> tags inside specific div

linux - Node 生成 std​​out.on 数据延迟

angular - @angular/forms 通用类型 'Type<T>' 需要 1 个类型参数

node.js - Shopify的 'slate'包安装后未运行

node.js - Jade 模板 if 语句

javascript - 使用 Node.js/promises 按类型捕获异常