我正在构建一个node.js应用程序,并同时开发应用程序所需的模块。其中一些模块有peerDependencies,我正在努力弄清楚如何最好地构建我的开发环境。
到目前为止,我所拥有的:
/node-projects
|--/myApp
|----/node_modules
|------/symlink to module1
|------/symlink to module2
|
|--/module1
|
|--/module2我使用npm link在我的应用程序的node_modules中创建一个符号链接,指向我的项目根目录中的模块。这让我可以轻松地使用git推送/拉取各个模块以及我的应用程序。
但是,如果module2将module1指定为peerDependency,我的应用程序将不会启动,并给出module2无法找到module1的错误。我认为这是因为它们实际上并不在同一个node_modules目录中。
有没有我遗漏的一块拼图,可以让模块2的符号链接识别模块1的符号链接?或者,我正在尝试实现的目标,目前使用npm是不可能的吗?有没有更好的策略来保持我的自定义模块与git/github同步,同时也要求它们出现在我的主应用程序中?
发布于 2013-09-18 04:48:19
在做了更多的研究之后,我想要完成的事情目前仅仅使用npm link是不可能的,而且似乎没有一个简单的答案来设置这种工作流程。
通过阅读npm的github repo上的this issue,我可以看到其他人也经历了同样的挫折,没有给出可能的解决方案。
我还遇到了模块npm-workspace,它似乎为我的问题提供了一个完整的解决方案,尽管我还没有尝试过。
另一种可能性是使用Git submodules。然而,在阅读有关git子模块的文章时,我看到很多人抱怨说,它们很难正确设置,而且似乎很容易在主git代码库中意外地包含你的子模块。
在我有机会测试npm-workspace之前,我会等待接受我自己的答案,同时也许会有人提出更好的解决方案。
https://stackoverflow.com/questions/18858928
复制相似问题