在本地需要节点模块

时间:2015-09-12 10:07:50

标签: node.js npm

使用已在NPM上注册的模块时,包含它们的过程很简单:运行npm install <package>然后添加var package = require('<package'>)

然而,我不知道如何设置&#34;设置&#34;在我自己的模块上工作时。我还没有准备好发布到NPM,但我确实希望require模块的方式与之前概述的相同。

因此,我已完成以下步骤:

  1. 在我的模块的node_moduels目录中创建了一个子目录
  2. 在此新目录
  3. 中添加了package.json个文件(通过npm init)
  4. dependencies文件
  5. 中包含package.json部分

    这是在本地使用节点模块的正确方法吗?

    此外,当我运行npm install时,似乎没有在我的模块的package.json文件中检测到依赖项 - 我认为这是我对事物的处理方式的问题?

1 个答案:

答案 0 :(得分:3)

我不建议将其放在node_modules目录中。此文件夹应从源代码管理中排除。

这是一个最小的端到端示例。

将此文件放在任何您喜欢的位置。我建议一个&#39; lib&#39;目录结构中的文件夹

<强> myModule.js

module.exports = function(callback){
    return callback("hello there");
}; 

然后,无论你想在哪里使用它:

app.js

var myModule = require('./lib/myModule');

myModule.sayHello(function(hello) {
    console.log(hello);
});

现在,如果你运行node app.js,你的控制台输出将是:

  

你好

随着myModule的增长,您可以将其重构为一组单独的文件,为其创建package.json,并将其发布到NPM

修改

根据您的评论,看起来这就是您想要的

Local dependency in package.json

因此,基于此,与上面的示例一起,按如下方式编辑package.json

{
  "dependencies": {
    "myModule": "file:../lib/myModule"
  }
}

然后你可以require作为:

var myModule = require('myModule');

如果/当您将myModule发布到npm时,您只需更改您的package.json

另一个编辑

作为另一种选择,您可以在package.json中指定git url而不必发布到NPM

Use Git dependencies with npm and Node on Heroku