我正在关注this blog,在第4节中,他们展示了如何执行和运行应用程序。它按照描述工作。
现在,我想把文件 server.js 放在一个名为 app 的目录中的入口点。但 npm start 命令不再能找到它。
经过一些谷歌搜索后,我读到我应该在 package.json 中放入以下一行,我做了。
“start”:“app / server.js”,
问题是它仍然无法找到它,我无法真正诊断出问题。是因为入口点必须在根目录中吗? start 元素是否需要在JSON文件中按特定顺序放置?我是否错误地指定了路径(我尝试过“\”和“/”等)?
答案 0 :(得分:2)
您错过了对节点的调用:
"start": "node app/server.js",
另外,请务必将上一行放在"scripts"
的{{1}}部分。
package.json
答案 1 :(得分:0)
.+
中scripts.start
的值被指定为执行package.json
时将运行的命令。这意味着您放入的任何值都将直接作为可执行文件运行,因此它不仅仅是指定路径。
现在有两种方法可以解决您的问题:
npm start
。node app/server.js
可执行文件:设置其可执行位(app/server.js
)并将hashbang行添加到文件中(chmod +x app/server.js
作为文件的第一行)答案 2 :(得分:0)
package.json
的脚本部分中的'start'键描述了执行'npm start'时由npm运行的脚本。
...
"scripts": {
"start": "node app/server.js"
}
...
但是,某些服务器可能会选择以其他可能的方式启动应用程序。将main
文件定义为应用程序的起点也是有意义的。这可以按如下方式完成:
...
"main": "app/server.js",
"scripts": {
"start": "node app/server.js"
}
...