NodeJS子模块

时间:2017-09-14 09:04:58

标签: node.js git npm module

我有一个节点应用程序,想要在子模块中提取一些代码(具有自己的依赖项的简单节点模块)。目前,我不想要单独的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,它也会安装corepartner的依赖项。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

您的项目只应有一个package.json文件,仅指myProject文件夹中的文件。您将myProjectcorepartner的所有依赖项安装到package.json

您现在可以要求所有外部依赖项:require("depencency");

如果它们适用于corepartner或任何其他模块,则无关紧要。你可以用同样的方式要求它们。

如果您想要使用自己的模块,请使用:require("./core");

请记住使用子模块的正确路径(例如../core子模块中的partner)。