如何控制NPM找到server.js的位置?

时间:2016-10-23 10:59:47

标签: javascript json node.js npm

我正在关注this blog,在第4节中,他们展示了如何执行和运行应用程序。它按照描述工作。

现在,我想把文件 server.js 放在一个名为 app 的目录中的入口点。但 npm start 命令不再能找到它。

经过一些谷歌搜索后,我读到我应该在 package.json 中放入以下一行,我做了。

  

“start”:“app / server.js”,

问题是它仍然无法找到它,我无法真正诊断出问题。是因为入口点必须在根目录中吗? start 元素是否需要在JSON文件中按特定顺序放置?我是否错误地指定了路径(我尝试过“\”和“/”等)?

3 个答案:

答案 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"
}

...