编写commonjs模块并使用require(不使用相对路径)

时间:2015-04-29 15:20:21

标签: javascript node.js commonjs

在不使用相对路径的情况下引用本地commonjs模块的最佳实践是什么?

var custMod= require(‘customModule’);
custMod(true);
custMod.save(‘foo’);

是否有建立像这样的模块的参考?

如果我编写了如下所示的模块,则在调用custMode.save(12);

时获取未定义
module.exports = customModule;function customModule(mode) {
  var mode = 1;
  return {
    save: function (value) {
        console.log(mode, value)
    },
    get: function (id) {
        console.log(mode, id)
    }
}

1 个答案:

答案 0 :(得分:0)

我希望节点让这更容易说实话。一种可能性:

project_root
`--node_modules
   |--npm-module-1
   |--npm-module-2
   |--... (etc)
   `--lib
      |--my-module.js
      `--my-other-module.js

通过上述内容,您可以从项目的任何位置键入require('lib/my-module')。 (只需确保并且永远不要安装名为lib的npm模块:)另一种可能性:

project_root
|--node_modules
|  |--npm-module-1
|  |--npm-module-2
|  `--... (etc)
`--lib
   `--node_modules
      |--my-module.js
      `--my-other-module.js

通过上述内容,您可以输入require('my-module'),但仅适用于project_root/lib/下的所有文件。

前一种方法的一个优点是require('lib/my-module')使得一目了然地告诉哪些模块是项目的本地模块非常容易。然而,后者输入的次数较少。