为什么我不能在 node.js(浏览器化)的 require() 函数中使用变量作为参数
Why can I not use a variable as parameter in the require() function of node.js (browserify)?
我尝试了类似的东西:
var path = '../right/here';
var module = require(path);
但它无法再以这种方式找到模块,而
:var module = require('../right/here');
就像一个魅力。想用生成的字符串列表加载模块,但我无法解决这个问题 atm。 有什么想法吗?
您可以使用模板动态获取文件。
var myModule = 'Module1';
var Modules = require(`../path/${myModule}`)
这是由于 Browserify 的捆绑方式,它只能对需求重新绑定进行静态字符串分析。因此,如果要进行浏览器捆绑,则需要对需求进行硬编码。
对于必须进入生产部署的代码(而不是快速原型,您很少费心为其添加捆绑),始终建议坚持静态需求,部分原因是捆绑,但也因为使用动态字符串为您提供需求意味着您正在编写不可预测的代码,因此可能充满您很少遇到并且极难调试的错误。
如果您需要基于不同运行的不同要求(例如,开发、阶段测试与生产),那么使用 process.env
或 config 对象通常是一个好主意,这样当需要决定特定目的需要哪个库时,您可以使用类似的东西
var knox = config.offline ? require("./util/mocks3") : require("knox");
这样,您的代码也可以立即被其他需要跟踪哪里出错的人遍历,以防发现错误。
require('@/path/'.concat(fileName))
您可以使用
.require() 添加要访问的文件,计算其路径,而不是在构建时是静态的,这样将包含此模块,稍后调用require()
时将找到它们。
相关文章:
- 访问嵌套函数结构中的JavaScript父函数变量
- Javascript函数变量传递语法问题
- JavaScript 函数变量范围问题
- 在 promise 中获取构造函数变量
- 将函数结果传递给Javascript中的另一个函数变量
- 用对象设置函数变量's值
- Javascript函数变量应生成错误,而不是未定义的错误
- 我可以访问用户脚本中的匿名函数变量吗?
- 在实例化期间使用构造函数变量
- 为什么在 JavaScript 中不能用函数变量覆盖字符串变量
- JavaScript 允许调用函数访问调用函数变量
- 如何在嵌套原型中访问 JavaScript 构造函数变量
- 对函数变量的 JavaScript 控制台日志输出感到困惑
- 如何将函数变量传递给主干模型上的 jQuery 事件
- 如何访问构造函数变量
- 实例函数变量不会更改
- 为什么函数变量在变量之后是未定义的
- 用内部函数变量更改外部函数变量?Javascript
- Javascript - 使用闭包递增静态函数变量模拟
- 异步 JavaScript 静态函数变量