【问题标题】:Foreverjs tries to find module in /node_modules/my-module/node_modules/my-moduleForeverjs 尝试在 /node_modules/my-module/node_modules/my-module 中查找模块
【发布时间】:2016-09-29 05:01:28
【问题描述】:

我使用foreverjs 来启动我的服务。我还将 nodejs v5nvm 一起使用。在 mac 上运行。

昨天一切正常,但今天(在npm update 之后)当我尝试npm start 时突然出现/node_modules/my-service-one/node_modules/my-service-one 之类的错误。

项目结构为:

 .
 |-package.json
 |-services.json
 |+-node_modules
   |-forever
   |-my-service-one
   |-my-service-two

foreverjs (services.json) 的配置:

[
  {
    "append": true,
    "uid": "my-service-one",
    "script": "index.js",
    "sourceDir": "node_modules/my-service-one"
  },
  {
    "append": true,
    "uid": "my-service-two",
    "script": "index.js",
    "sourceDir": "node_modules/my-service-two"
  }
]

我使用 npm start(package.json) 启动它:

...
"scripts": {
  "start": "node_modules/forever/bin/forever start services.json",
}
...

但是当我尝试制作npm start时,我有一个错误:

Error: Cannot find module '/Users/my_user/project_name/node_modules/my-service-one/node_modules/my-service-one/index.js'

WTF 是这个/node_modules/my-service-one/node_modules/my-service-one?为什么? 它应该使用/node_modules/my-service-one/index.js。那为什么呢?


UPD:我已经尝试过的(没有结果):

  • rm -rf node_modules;
  • 重启;
  • 使用节点v4、v5、v6;
  • npm cache clean;
  • 在项目内的错误位置查找其他 node_modules
  • 谷歌搜索;

这也许是个坏问题,但我真的不知道为什么会这样。谢谢。

【问题讨论】:

    标签: javascript node.js node-modules forever


    【解决方案1】:

    您是否尝试过从命令行永久启动此模块?

    这个路径问题对我来说似乎是一个错误,我认为明显的胶带类型修复是在 services.json 中使用绝对路径而不是相对路径。它看起来很糟糕,但它应该可以工作。

    但我认为最好全局安装forever(使用-g 键),然后使用简单的shell 脚本永远启动您的服务(两行带有forever start /Users/my_user/project_name/node_modules/my-service-one/index.js 的东西)——这种方式对我来说很好.

    而且在启动时启动这个脚本也很容易,甚至可以编写一个脚本来启动和停止作为服务的模块。


    UPD:这也可能有帮助:sourceDir: './'

    【讨论】:

    • 非常感谢。这对我来说是工作。有点hacky,但总比没有好。老实说,我不喜欢接受俗套的答案,但如果几天后没人能提供更好的答案,我会接受你的答案
    • 永远在 shell 脚本中的解决方案已经为我完美地工作了 1 年多的 3 个不同的服务器,所以我会推荐它。并且将节点线程作为一个简单的普通服务非常方便(当然对 unix 服务器更有用)。
    猜你喜欢
    • 2020-02-16
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多