Answers:
从手册页 npm开始:
如果提供了包,则运行包的“开始”脚本。如果未指定任何版本,则它将启动“活动”版本。
诚然,这种描述完全没有用,仅此而已。至少它比socket.io更有据可查。
无论如何,真正发生的是npm在package.json文件中查找,并且如果您有类似
“脚本”:{“开始”:“咖啡服务器。咖啡”}
然后它将做到这一点。如果npm找不到您的启动脚本,则默认为:
节点server.js
该文档已更新。我的答案与接受的答案相比有很大的变化:我想反映文档是最新的,并且接受的答案有一些断开的链接。
另外,我不明白什么时候接受的答案是“默认为node server.js
”。我认为文档阐明了默认行为:
npm-start
开始打包
概要
npm start [-- <args>]
描述
这将运行在包的对象的
start
属性中指定scripts
的任意命令。如果start
在scripts
对象上没有指定属性,它将运行node server.js
。
总之,运行npm start
可以执行以下两项操作之一:
npm start {command_name}
:运行任意命令(即,如果在start
package.json 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'