nodejs模块引用其根目录之外的变量是否安全?

时间:2013-08-23 15:25:03

标签: node.js npm node-modules

假设我有我的nodejs应用程序foobar-base,并且我创建了另一个应用程序(foobar-baz),该应用程序旨在成为foobar-base的“模块”:

$ cd foobar-base
$ npm install foobar-baz

如果foobar-baz中的方法依赖于我在foobar-base中定义的类,这是不好的做法吗?

那是:

foobar的基/ node_modules / foobar的巴兹/ index.js

var myClass = require('../../src/myClass.js');
myClass.myMethod();

可能这样做,但如果我通过npm link测试模块:

$ cd foobar-baz
$ npm link
$ cd ../foobar-base
$ npm link foobar-baz

然后require调用失败,因为../../现在指向/usr/lib/node_modules/,至少在我的机器上。但理论上,当发布到npm时,需求会起作用。

所以这种意外(但可以理解)的行为给我留下了足够的危险信号,不考虑采取这种行动。

相反,我只是“全球化”myClass

foobar的基/ node_modules / foobar的巴兹/ index.js

myClass.myMethod();    // already available, see below

foobar的基/ index.js

myClass = require('./src/myClass');

var foobar-baz = require('foobar-baz');    // myClass.myMethod() is called

......但话说回来,“全局性很糟糕”......所以我该怎么办?

0 个答案:

没有答案