【发布时间】:2015-04-18 18:59:06
【问题描述】:
我有一些需要开发的东西 - 例如,我不想让我的分布式构建文件膨胀的模拟。
在 RequireJS 中,您可以在插件文件中传递一个配置,并在此基础上要求一些东西。
对于 webpack,似乎没有办法做到这一点。首先为环境创建运行时配置,我使用resolve.alias 根据环境重新指向要求,例如:
// All settings.
var all = {
fish: 'salmon'
};
// `envsettings` is an alias resolved at build time.
module.exports = Object.assign(all, require('envsettings'));
然后在创建 webpack 配置时,我可以动态分配 envsettings 指向的文件(即 webpackConfig.resolve.alias.envsettings = './' + env)。
但是我想做这样的事情:
if (settings.mock) {
// Short-circuit ajax calls.
// Require in all the mock modules.
}
但如果环境不是模拟的,我显然不想在那些模拟文件中构建。
我可以再次使用 resolve.alias 手动将所有这些要求重新指向存根文件 - 但有没有一种方法可以让你感觉不那么老套?
有什么想法可以做到吗?谢谢。
【问题讨论】:
-
请注意,现在我已经使用别名指向我不想要的环境中的空(存根)文件(例如 require('mocks') 将指向非模拟上的空文件envs。看起来有点hacky,但它确实有效。
标签: javascript build conditional require webpack