节点应用程序和多个节点模块同时开发,使用npm-link

7 git require node.js npm

我正在构建一个node.js应用程序,并同时开发应用程序所需的模块.有些模块有peerDependencies,我正在努力弄清楚如何最好地构建我的开发环境.

到目前为止我所拥有的:

/node-projects
|--/myApp
|----/node_modules
|------/symlink to module1
|------/symlink to module2
|
|--/module1
|
|--/module2
Run Code Online (Sandbox Code Playgroud)

我用npm link我的应用程序的node_modules中创建一个符号链接到我的项目根目录中的模块.这让我可以轻松地推送/拉出单个模块以及我的应用程序.

但是,如果module2将module1指定为peerDependency,我的应用程序将无法启动,从而给出module2无法找到module1的错误.我假设这是因为它们实际上并不在node_modules目录中.

是否有一个我错过的难题,将允许module2的符号链接识别module1的符号链接?或者我正在努力实现目前npm无法实现的目标?是否有更好的策略来保持我的自定义模块与git/github同步,同时还需要在我的主应用程序中?

小智 3

在做了更多研究之后,似乎我想要完成的任务目前仅使用 npm 是不可能的npm link,并且似乎没有一个简单的答案来仅使用 npm 设置这种工作流程。

在 npm 的 github 存储库上阅读此问题后,我发现其他人也遇到了同样的挫败感,但没有给出可能的解决方案。

我还遇到了npm-workspace模块,它似乎完全为我的问题提供了解决方案,尽管我还没有尝试过。

另一种可能性是使用Git 子模块。然而,在阅读有关 git 子模块的内容时,我看到很多抱怨说它们很难正确设置,而且似乎很容易意外地将子模块包含在主 git 存储库中。

我会等待接受我自己的答案,直到我有机会测试 npm-workspace,同时也许有人会提出更好的解决方案。