为什么browserfy在调用require之前加载每个模块
Why does browserify load every module before calling require?
我有一个类似的代码:
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
但因果报应+浏览我得到了
a is loaded
b is loaded
a is running
在控制台中。
有没有办法阻止b通过browserfy加载?
如果我错了,请有人纠正我,但browserfy的工作方式是,它会获取你可能需要的每一个JS文件,并创建一个包含所有内容的JS,这样它就可以在浏览器中使用;由于它无法确定在编译时需要使用哪些源,因此需要加载所有内容。
也许您可以尝试使用备用脚本加载程序,例如RequireJS。
相关文章:
- 使用RequireJS从数组动态加载模块
- NgRoute未加载(模块错误)
- 动态加载模块角度
- RequireJS - 动态加载模块
- 无法在 Angular JS 中加载模块
- 从视图调用异步加载模块函数
- 主干木偶:木偶.应用程序导致 Require.js 模块加载错误,“'错误:尚未为上下文加载模块名称'A
- Webpack - 在不创建别名的情况下加载模块
- Jasmine 由于 ES6 语法而未加载模块
- 角度AMD加载模块不起作用
- 带有 angularjs 和 requirejs 的延迟加载模块
- RequireJS 有时不加载模块
- Require.js甚至在IF语句中也在加载模块
- AngularJS加载模块失败
- 节点未从项目根目录加载模块
- 通过requirejs自动加载模块
- 在运行时重新加载模块
- 动态命名的局部变量,用于加载模块
- RequireJS-加载模块的多个实例
- 无法在HotTowel SPA上加载模块