如何使用我自己的节点模块

时间:2017-10-05 01:53:53

标签: node.js npm

我创建了一个节点模块,似乎无法正常使用它。这是我所说的模块的index.js:

const thing = require('./thing.js');
exports.thing = thing;

这是thing.js:

module.exports = 'foobar';

这是package.json:

{
  "name": "thing-both",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

这是我想在其他模块中使用的package.json:

{
  "name": "another-thing",
  "description": "",
  "dependencies": {
    "thing-both": "file:../both"
  },
  "private": true
}

我运行npm install并安装模块。当我尝试要求我在anotherThing模块中创建的模块时,我收到“无法找到模块”错误。这是我的要求声明:

const thing = require('thing-both');

我注意到的一件事是安装的模块没有文件,文件夹在我的目录侧边栏中有一个图标(使用Sublime 3,图标看起来像符号链接图标):

enter image description here

这是我正在使用的项目目录:

both
  thing.js
  index.js
  package.json
other
  // stuff

我可能在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

在库模块中使用npm link,然后在消费模块中使用npm link MODULE_NAME。您收到此错误是因为您的库模块可能未托管在npm install查找模块的npm注册表中。

这是一种快速本地开发的方法,无需在每次进行更改并希望在本地进行测试时将库模块一直提交到npm注册表。