【发布时间】:2015-05-17 02:20:05
【问题描述】:
我尝试了类似的方法:
var path = '../right/here';
var module = require(path);
但它无法再以这种方式找到模块,而:
var module = require('../right/here');
像魅力一样工作。想用生成的字符串列表加载模块,但我无法解决这个问题 atm。有什么想法吗?
【问题讨论】:
-
我一直这样做,而且效果很好。 什么时候这对你来说有问题吗?因为如果您使用的是 webpack 或 browserify 之类的东西,那么是的:这会出错,因为它们只能进行静态字符串依赖解析。
-
哦,browserify是问题所在,那么(?)有没有简单的方法来解决它?
-
是的,但您不会喜欢它:硬编码您的要求。对于您捆绑用于生产部署的真实代码(与快速原型设计不同),几乎不需要从变量中获取,因为您将编写无法以任何方式预测并因此可能充满错误的代码。如果您需要基于不同运行的不同要求,则在启动时构建一个配置对象(使用
process.env或其他东西),当需要执行要求时,使用类似vars knox = config.offline ? require("./util/mocks3") : require("knox"); -
猜猜这是最好的方法。想到大约 100 个模块,我仍然不寒而栗。感谢您指出这是一个browserify问题 - 很明显,考虑它是如何工作的。会听从你的建议。泰。
-
也将其转化为答案,因为在 cmets 中获得答案并没有那么有用 =)
标签: javascript node.js reactjs browserify