1

我的项目文件夹是这样的:

  • -- main.js
  • --lib
  • ------libA
  • ---------- a.js
  • ------libB
  • ---------- b.js
  • ----------库
  • --------------libA
  • ------------------ a.js

main.js 中

var obja = require('./lib/libA/a');
require('./lib/libB/b');

b.js 中

var obja = require('./lib/libA/a');

a.js 中

module.exports = {};

然后,如果我更改b.js中的objamain.js中的obja并没有改变。

我的问题是如何同时更改两个obja

谢谢。

4

2 回答 2

1

您有两个不同的a.js文件 - 一个在 中lib/libA,另一个在lib/libB/lib/libA. 这是两个不同的模块,每个模块都有自己的exports对象。如果要引用相同的a模块,则需要将b.js文件更改为:

var obja = require('../libA/a');

这样,两者main.jsb.js都将引用同一个模块(中的那个lib/libA/a.js)。

于 2012-05-31T12:29:11.183 回答
1

在您的示例中,如果您摆脱了 obja 变量并仅引用 libA.a ,您可以在这两个地方更改它 - 假设您在同一个进程/集群中

于 2012-05-31T12:25:24.077 回答