基于配置值的Webpack条件构建

时间:2015-08-19 17:35:17

标签: javascript requirejs reactjs webpack

我正在寻找与Require.JS has.js 集成相当的Webpack。

在Require.JS中,您可以根据has.js中的变量编译不同的代码路径。 Webpack是否有一个等效的加载器/插件来做同样的事情?

示例:

config.js

module.exports = {
  option1: 'foo' // other option is 'bar'
}

然后在某处的代码中有类似下面的内容

code.js

var a;

if (option1 === 'foo') {
  a = require('fooModule');
} else if (option1 === 'bar') {
  a = require('barModule');
}

并且只有一个构建输出的代码在评估为true的条件下?

或者,这样的事情也可以起作用:

import MyLibrary from './modules/' + config.option1 + 'Module.js';

this stackoverflow answer会成为实现我所寻找目标的最佳做法吗?最终,目标是拥有一组源,可以根据配置中的值编译到特定(ish)目标,而不是在最终构建中向线路发送不适用的代码。

3 个答案:

答案 0 :(得分:2)

似乎最好的,大多数 webpack惯用方式来处理这个问题是通过

Webpack DefinePlugin

答案 1 :(得分:2)

您可以使用webpack DefinePlugin执行此操作。 Pete Hunt的Webpack Howto有一个很好的实施例子。

答案 2 :(得分:-1)

webpack-hasjs-plugin应该做你想做的事。