javascript - 为什么 browserify 在调用 require 之前加载每个模块?

标签 javascript browserify

我有一个类似这样的代码:

index.js

var x, a = 1;

if (a)
   x = require("./a");
else
   x = require("./b");

module.exports = x();

a.js

console.log("a is loaded");
module.exports = function (){
    console.log("a is running")
};

b.js

console.log("b is loaded");
module.exports = function (){
    console.log("b is running")
};

按我得到的节点

a is loaded
a is running

但是通过 karma+browserify 我得到了

a is loaded
b is loaded
a is running

在控制台中。

有没有办法阻止b被browserify加载?

最佳答案

如果我错了,请有人纠正我,但 browserify 的工作方式是,它会获取您可能需要的每个 JS 文件,并使用所有内容创建一个 JS,以便可以在浏览器中使用;由于它无法确定在编译时需要使用哪些源,因此它需要加载所有内容。

也许您可以尝试使用备用脚本加载器,例如 RequireJS ,例如。

关于javascript - 为什么 browserify 在调用 require 之前加载每个模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38705187/

相关文章:

javascript - 将 Browserify 与 gulp 一起使用时,Navigo 未定义

javascript - Flowplayer 具有不自动播放的播放列表

javascript - jquery - 将 JSON 和 HTML 从 AJAX 响应中分离出来

javascript - 无法停止页面重新加载

javascript - 多个异步测试 Jasmine

javascript - 在 JavaScript 中从字符串中解码混合 ASCII 代码

node.js - browserify external 与 exclude 有什么区别?

javascript - browserify/gulp 构建中未定义的 jQuery 错误

javascript - 使用 Gulp + Browserify 时,对象 #<Readable> 没有方法 'write'

javascript - Karma-Browserify + Karma-Coverage 的问题