基于配置值的 Webpack 条件构建

Webpack conditional build based on configuration values

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

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

示例:

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';

会是目前实现我正在寻找的最佳实践吗?最终,目标是拥有一组源代码,可以根据配置中的值编译成特定的(ish)目标,同时在最终构建中也不会发送不适用的代码。

这似乎是最好的,最 webpack 惯用的 方式来处理这个是通过

Webpack DefinePlugin

你可以使用 webpack DefinePlugin to do this. Pete Hunt's Webpack Howto 有一个很好的实现示例。

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