7

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

到目前为止我所拥有的:

/node-projects
|--/myApp
|----/node_modules
|------/symlink to module1
|------/symlink to module2
|
|--/module1
|
|--/module2

我用来npm link在我的应用程序的 node_modules 中创建一个符号链接到我的项目根目录中的模块。这让我可以轻松地 git push/pull 单个模块以及我的应用程序。

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

是否有一个我错过的难题将允许 module2 的符号链接识别 module1 的符号链接?还是我目前正在尝试通过 npm 完成的工作是不可能的?是否有更好的策略来保持我的自定义模块与 git/github 同步,同时在我的主应用程序中也需要它们?

4

1 回答 1

3

在做了更多的研究之后,我似乎目前无法仅npm link使用 .

在 npm 的 github repo 上阅读这个问题,我可以看到其他人也遇到了同样的挫败感,但没有给出可能的解决方案。

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

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

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

于 2013-09-17T20:48:19.403 回答