CNode

Node.js中相同模块是否会被加载多次?

Jjeffz发布于14 年前最后回复14 年前4 回复10465 浏览0 收藏

原文链接

[ '/Users/jeffz/Projects/node-test/node_modules',
  '/Users/jeffz/Projects/node_modules',
  '/Users/jeffz/node_modules',
  '/Users/node_modules',
  '/node_modules']
$ npm install express
express[@2](/user/2).5.2 ./node_modules/express 
├── mkdirp[@0](/user/0).0.7
├── qs[@0](/user/0).4.0
├── mime[@1](/user/1).2.4
└── connect[@1](/user/1).8.5
$ npm install mime
mime[@1](/user/1).2.4 ./node_modules/mime 
./node_modules
├── <span style="color: red"><strong>mime</strong>
└── express
    └── node_modules
        ├── mkdirp
        ├── qs
        ├── <span style="color: red"><strong>mime</strong>
        └── connect
module.exports.MyType = function () { }
module.exports.MyType = require("jeffz-a").MyType;
./node_modules
├── jeffz-a
└── jeffz-b
    └── node_modules
        └── jeffz-a
var a = require("jeffz-a");
var b = require("jeffz-b");

console.log(new a.MyType() instanceof a.MyType); // true
console.log(new b.MyType() instanceof b.MyType); // true

console.log(new a.MyType() instanceof b.MyType); // false
console.log(new b.MyType() instanceof a.MyType); // false
查看回复

回复 (4)

C
cdzwm#1·14 年前

只要不要多个目录里放置同样的模块就不会重复加载。

P
pairwinter#4·14 年前

我不太赞同你关于javascript的观点,语言应该是各有优点,而且用途也不一样。 你的提出的模块加载问题对我有些帮助,谢谢你了。

参与回复
登录后即可参与回复。登录