在我们的项目中,可以在假 - 后端模式或实时后端模式下运行应用程序。我们的想法是,开发人员可以使用实现后端API但返回模拟数据的函数在本地开发。
我希望能够做到这样的事情:
webpack --config webpack-config-fake.js
然后在代码中我会做类似的事情:
var mockSuffix = webpackConfig.options.isFake ? "-fake" : "";
var backendApi = require('backend-api'+mockSuffix+'.js')
问题:
答案 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],
},