Webpack - 需要基于构建配置的文件

时间:2015-05-27 19:36:35

标签: webpack

在我们的项目中,可以在假 - 后端模式或实时后端模式下运行应用程序。我们的想法是,开发人员可以使用实现后端API但返回模拟数据的函数在本地开发。

我希望能够做到这样的事情:

webpack --config webpack-config-fake.js

然后在代码中我会做类似的事情:

var mockSuffix = webpackConfig.options.isFake ? "-fake" : "";
var backendApi = require('backend-api'+mockSuffix+'.js')

问题:

  • 这听起来像是正确的方法吗?
  • 如何在源代码中访问使用过的webpackConfig?
  • 我正在考虑的另一种方法是使用Webpack上下文。但是,我不确定它是否可以用于帮助。这是值得考虑的事情吗?

1 个答案:

答案 0 :(得分:13)

在你的"假的" config,您可以通过NormalModuleReplacementPlugin替换所需的模块。在以下示例中,require('backend-api')会产生backend-api-mock

plugins: [
  new webpack.NormalModuleReplacementPlugin(/backend-api/, function(result) {
    result.request = result.request.replace(/(backend-api)/, '$1-mock');
  }),
],

您还可以指出您的模拟文件夹在解析请求时优先。见resolve.root。在以下示例中,如果找不到相应的模块,require('backend-api')将首先查看mockPath并回退到dependenciesPath

resolve: {
  root: [mockPath, dependenciesPath],
},