我已经使用命令express new '文件名'
安装了一个应用程序。我刚刚学到你可以使用以下方式启动应用程序:
npm start
到目前为止,我已经使用了:
node app.js
我要启动我的服务器。有人知道这两者之间的区别吗?谢谢。
来自man page,npm start:
运行程序包中提供的“start”脚本。 如果未指定版本,则会启动“活动”版本。
诚然,这个描述完全没有帮助,这就是它所说的。 至少比socket.io更有文档记录。
无论如何,真正发生的是npm查找您的package.json文件,如果您有类似以下内容:
"scripts": { "start": "coffee server.coffee" }
那么它就会执行该命令。 如果npm找不到您的启动脚本,则默认为:
node server.js
文档已更新。我的回答与被接受的回答有很大不同:我希望反映文档是最新的,而被接受的回答中有一些链接已经失效。
此外,我没有理解被接受的答案中的“它默认为 node server.js
”。我认为文档澄清了默认行为:
npm-start
启动软件包
简介
npm start [-- <args>]
描述
它运行软件包中指定的任意命令,该命令在其“
scripts
”对象的“start
”属性中指定。如果“scripts
”对象上没有指定“start
”属性,它将运行node server.js
。
总之,运行npm start
可能会做两件事:
npm start {command_name}
:运行任意命令(例如在package.json的scripts
对象的start
属性中指定了此类命令)npm start
:否则,如果不存在start
属性(或没有传递command_name
),则运行node server.js
(这可能不合适,例如OP没有server.js
; OP运行node
app.js
)npm start
的目录中没有package.json
文件,您可能会看到错误:npm ERR!enoent ENOENT:没有这样的文件或目录,打开'。\package.json'