我正在构建一个node.js应用程序,并同时开发应用程序所需的模块。有些模块有peerDependencies,我正在努力弄清楚如何最好地构建我的开发环境。
到目前为止我所拥有的:
/node-projects
|--/myApp
|----/node_modules
|------/symlink to module1
|------/symlink to module2
|
|--/module1
|
|--/module2
我使用npm link
在我的应用程序的node_modules中创建一个符号链接到我的项目根目录中的模块。这让我可以轻松地推送/拉出单个模块以及我的应用程序。
但是,如果module2将module1指定为peerDependency,我的应用程序将无法启动,从而给出module2无法找到module1的错误。我假设这是因为它们实际上并不在node_modules目录中。
是否有一个我错过的难题,这将允许module2的符号链接识别module1的符号链接?或者我正在努力实现目前npm无法实现的目标?有没有更好的策略来保持我的自定义模块与git / github同步,同时还需要它们在我的主应用程序中?
答案 0 :(得分:3)
在做了一些更多的研究后,似乎我目前无法使用npm link
来实现目标,并且似乎并不是一个简单的答案来获得这种工作流程仅使用npm进行设置。
在npm' github repo上阅读this issue我可以看到其他人正在经历同样的挫折,没有给出可能的解决方案。
我还遇到了模块npm-workspace,它似乎完全解决了我的问题,但我还没有尝试过。
另一种可能性是使用Git submodules。然而,在阅读git子模块时,我看到很多抱怨他们很难正确设置,并且在您的主git仓库中意外地包含子模块似乎非常容易。
我将等待接受我自己的答案,直到我有机会测试npm-workspace,同时也许有人会用更好的解决方案来填写。