node.js - 在本地需要 Node 模块

标签 node.js npm

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

但是,在我自己的模块上工作时,我不确定“设置”的方式。我还没准备好发布到 NPM,但我确实想 require模块的方式与之前概述的方式相同。

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

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

这是在本地使用 Node 模块的正确方法吗。

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

最佳答案

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

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

把这个文件放在任何你喜欢的地方。我建议在您的目录结构中使用“lib”文件夹

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,您的控制台输出将是:

hello there

随着 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

另一个编辑

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

Use Git dependencies with npm and Node on Heroku

关于node.js - 在本地需要 Node 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537577/

相关文章:

node.js - 如何从可写流创建可读流? ( Node .js)

javascript - 如何创建包含 "!"的语句

node.js - Linux 上的 Angular 2 QuickStart 无法正常工作

node.js - Sails.js 缺少模块

javascript - Gulp - 缩小 JS 并写入相同的目的地

angularjs - 如何将 Elastic Search 与 Meanjs (Mongodb、Express、Angular、Nodejs) 集成

node.js - 指定应在 package.json 中安装没有可选依赖项的包

javascript - 从 github 克隆应用程序——缺少模块 depencines。如何一次性全部安装?

node.js - 不能在控制指令或其他混入中定义函数

node.js - Node 服务器,Socket.io 'io is not defined' ?