Foreverjs 尝试在 /node_modules/my-module/node_modules/my-module 中查找模块
Foreverjs tries to find module in /node_modules/my-module/node_modules/my-module
我用foreverjs to start my services. Also I use nodejs v5 with nvm。 运行 于 mac。
昨天一切正常,但今天(在npm update
之后)我突然遇到/node_modules/my-service-one/node_modules/my-service-one
这样的错误,当我尝试[=17] =].
项目结构为:
.
|-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'
这是什么鬼:/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
;
- Google吧;
这也许是个糟糕的问题,但我真的不知道为什么会这样。谢谢。
您是否尝试过从命令行使用 forever 启动此模块?
这个路径问题对我来说看起来像是一个错误,我认为明显的胶带类型修复是在 services.json
中使用绝对路径而不是相对路径。它看起来很糟糕,但它应该有效。
但我认为最好在全局安装 forever
(使用 -g
密钥),然后使用简单的 shell 脚本永久启动您的服务(两行带有 forever start /Users/my_user/project_name/node_modules/my-service-one/index.js
) - 这种方式适合我。
而且在启动时启动这个脚本也很容易,甚至可以编写一个脚本来启动和停止您的模块作为服务。
更新: 这也可能有帮助:sourceDir: './'
我用foreverjs to start my services. Also I use nodejs v5 with nvm。 运行 于 mac。
昨天一切正常,但今天(在npm update
之后)我突然遇到/node_modules/my-service-one/node_modules/my-service-one
这样的错误,当我尝试[=17] =].
项目结构为:
.
|-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'
这是什么鬼:/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
; - Google吧;
这也许是个糟糕的问题,但我真的不知道为什么会这样。谢谢。
您是否尝试过从命令行使用 forever 启动此模块?
这个路径问题对我来说看起来像是一个错误,我认为明显的胶带类型修复是在 services.json
中使用绝对路径而不是相对路径。它看起来很糟糕,但它应该有效。
但我认为最好在全局安装 forever
(使用 -g
密钥),然后使用简单的 shell 脚本永久启动您的服务(两行带有 forever start /Users/my_user/project_name/node_modules/my-service-one/index.js
) - 这种方式适合我。
而且在启动时启动这个脚本也很容易,甚至可以编写一个脚本来启动和停止您的模块作为服务。
更新: 这也可能有帮助:sourceDir: './'