我使用命令express new 'filename'
安装了一个应用程序。我刚刚了解到您可以使用以下方式启动应用程序:
npm start
到目前为止,我已经使用过:
node app.js
启动我的服务器。谁知道两者之间有什么区别?感谢。
答案 0 :(得分:248)
来自man page,npm start:
运行包的“开始”脚本(如果提供了一个)。 如果未指定版本,则启动“活动”版本。
不可否认,这种描述完全没有用,而且就是这样。至少它比socket.io更有记录。
无论如何,真正发生的是npm在你的package.json文件中查找,如果你有类似
的内容然后它会那样做。如果npm找不到您的启动脚本,则默认为:“scripts”:{“start”:“coffee server.coffee”}
node server.js
答案 1 :(得分:9)
documentation has been updated。我的答案与接受的答案有很大的变化:我想反映文档是最新的,并且接受的答案有一些断开的链接。
另外,我不明白接受的答案何时说“默认为node server.js
”。我认为文档阐明了默认行为:
NPM启动
启动套餐
概要
npm start [-- <args>]
描述
这会运行包“
start
”中指定的任意命令 “scripts
”对象的属性。如果未指定“start
”属性 在“scripts
”对象上,它将运行node server.js
。
总之,运行npm start
可以执行以下两项操作之一:
npm start {command_name}
:运行任意命令(即,如果在package.json的start
对象的scripts
属性中指定了此类命令)npm start
:否则,如果不存在start
属性(或者没有传递command_name
):运行node server.js
,(可能不适合,例如OP没有server.js
; OP运行node
app.js
)package.json
的目录中没有npm start
,则可能会显示错误:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'