我已经使用命令安装了一个应用程序express new 'filename'
。我刚刚了解到您可以使用以下方式启动应用程序:
npm start
到目前为止,我使用过:
node app.js
启动我的服务器。有谁知道这两者有什么区别吗?谢谢。
从手册页,npm start:
运行包的“启动”脚本(如果提供的话)。如果未指定版本,则启动“活动”版本。
诚然,这种描述完全没有帮助,仅此而已。至少它比 socket.io 有更多的文档记录。
无论如何,真正发生的是 npm 在你的package.json文件中查找,如果你有类似的东西
“脚本”:{“开始”:“咖啡 server.coffee”}
然后它会这样做。如果 npm 找不到您的启动脚本,则默认为:
节点服务器.js
文档已更新。我的答案与接受的答案相比有很大的变化:我想反映文档是最新的,并且接受的答案有一些断开的链接。
另外,我不明白什么时候接受的答案说“它默认为node server.js
”。我认为文档阐明了默认行为:
npm-开始
开始一个包
概要
npm start [-- <args>]
描述
这会运行在包的“ ”对象的“
start
”属性中scripts
指定的任意命令。如果没有在“ ”对象start
上指定“ ”属性,它将运行。scripts
node server.js
总之,跑步npm start
可以做以下两件事之一:
npm start {command_name}
:运行任意命令(即如果在start
package.jsonscripts
对象的属性中指定了这样的命令)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'