尝试将模块用作本地模块时出现模块未找到错误

Module not found error when trying to use a module as a local module

我正在尝试了解如何制作本地模块。在节点应用程序的根目录下,我有一个名为 lib 的目录。在 lib 目录中,我有一个 .js 文件,它看起来像:

var Test = function() {
    return {
        say : function() {
            console.log('Good morning!');
        }
    }
}();

module.exports = Test;

我修改了我的package.json,添加了本地模块的路径条目:

"dependencies": {
   "chat-service": "^0.13.1",
   "greet-module": "file:lib/Test"
}

现在,如果我尝试 运行 测试脚本,例如:

var greet = require('greet-module');

console.log(greet.say());

它抛出一个错误说:

Error: Cannot find module 'greet-module'

我在这里犯了什么错误?

modules.export 不正确。它应该是 module.exportss.

此外,请确保在添加依赖项后执行 npm install。这会将文件复制到您的 node_modules 并使其可供 require 函数使用。

参阅 here 以获得很好的参考。

更新:

在通过一些示例弄清楚这一点后,我注意到,大多数项目都具有我在下面列出的结构。您可能应该将本地模块格式化为它们自己的独立包。使用它们自己的文件夹和 package.json 文件指定它们的依赖项和名称。然后你可以用 npm install -S lib/test.

包含它

一旦我这样做了,它就对我有用,而且它将是一个很好的结构。干杯。

代码见here