我已经使用命令express new 'filename'
安装了一个应用程序。我刚刚了解到,您可以使用以下命令启动应用程序:
npm start
到目前为止,我已经使用了:
node app.js
来启动我的服务器。有人知道这两者之间的区别吗?谢谢。
发布于 2012-07-30 14:57:06
从man page开始,npm开始:
如果提供了包的“启动”脚本,
将运行该脚本。如果未指定版本,则启动“活动”版本。
诚然,这种描述完全没有帮助,这就是它所说的一切。至少它比socket.io有更多的文档。
无论如何,实际发生的情况是npm查看您的package.json文件,如果您有如下内容
开始“脚本”:{“
”:“ server.coffee”}
那么它就会这么做。如果npm找不到您的启动脚本,则默认为:
节点server.js
发布于 2017-05-07 03:36:11
documentation has been updated。我的答案与公认的答案相比有很大的变化:我想反映文档是最新的,而公认的答案有一些断开的链接。
另外,我也不明白什么时候被接受的答案是“它默认为node server.js
”。我认为文档澄清了默认行为:
npm-启动
启动一个包
提要
npm start [-- <args>]
描述
这将运行在软件包的"**scripts
**“对象的"**start
**”属性中指定的任意命令。如果没有在“node server.js
**.**”对象上指定"start
“属性,它将运行scripts
总之,运行npm start
可以做以下两件事之一:
npm start {command_name}
:运行任意命令(例如,如果在object)npm start
:的Package.json的nodeapp.js
的start
属性中指定了这样的命令,否则如果不存在start
属性(或者没有传递command_name
):运行node server.js
(这可能不合适,例如OP没有server.js
;OP运行nodeapp.js
)npm start
的目录中没有package.json
,则可能会看到错误:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'
https://stackoverflow.com/questions/11716421
复制相似问题