我有一个节点应用程序,想要在子模块中提取一些代码(具有自己的依赖项的简单节点模块)。目前,我不想要单独的git
存储库或npm registry entries
,但只需在子目录中提供它们。
其中一个模块名为core
,因为它应该在主节点应用程序以及其他子模块中使用。
让我们说这是我的结构:
- myProject的
- 的package.json
- app.js
- 芯
- index.js
- 的package.json
- 伙伴
- index.js
- 的package.json
合作伙伴需要核心和app.js
需求核心。我的方法是做到以下几点:
cd partner
npm install --save ../core
cd ..
npm install --save ./core
npm install --save ./partner
npm install
错误:
npm ERR!代码ENOENT
npm ERR! errno -2
npm ERR!系统调用重命名
npm ERR! enoent ENOENT:没有这样的文件或目录,重命名为'/home/tjorben/dev/myProject/node_modules/.staging/sliced-fc0a1515' - > '/家庭/ tjorben的/ dev / myProject的/核心/ node_modules / mquery / node_modules /切片'
我的目标是,我只需要在基础文件夹(myProject
)上安装npm,它也会安装core
和partner
的依赖项。有没有办法实现这个目标?
答案 0 :(得分:2)
您的项目只应有一个package.json
文件,仅指myProject
文件夹中的文件。您将myProject
,core
和partner
的所有依赖项安装到package.json
。
您现在可以要求所有外部依赖项:require("depencency");
如果它们适用于core
或partner
或任何其他模块,则无关紧要。你可以用同样的方式要求它们。
如果您想要使用自己的模块,请使用:require("./core");
请记住使用子模块的正确路径(例如../core
子模块中的partner
)。