javascript - 如何使用 webpack-merge 设置不同的插件选项
问题描述
基础https://webpack.js.org/guides/production/
我想在webpack.dev.js和webpack.prod.js中使用不同的 html 模板
webpack.common.js
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
app: './src/index.js',
},
plugins: [
new HtmlWebpackPlugin({
title: 'Production'
}),
]
};
webpack.dev.js
const { merge } = require('webpack-merge');
const common = require('./webpack.common.js');
module.exports = merge(common, {
mode: 'development',
plugins: [
new HtmlWebpackPlugin({
template:'./public/index-dev.html',
})
]
});
webpack.prod.js
const { merge } = require('webpack-merge');
const common = require('./webpack.common.js');
module.exports = merge(common, {
mode: 'production',
plugins:
new HtmlWebpackPlugin({
template:'./public/index.html',
})
]
});
报告ReferenceError: HtmlWebpackPlugin is not defined when npm run with these config
解决方案
如果没有明确的要求/导入,您将无法从另一个配置文件中直接访问 HtmlWebpackPlugin 的任何其他内容。合并只加入配置部分而不是整个文件。
因此,您必须const HtmlWebpackPlugin = require('html-webpack-plugin');
在所有使用 HtmlWebpackPlugin 的文件中都有。
网页合并不会仅合并 module.exports 对象本身的所有文件数据。
推荐阅读
- swift - 相同的 SKActions 执行速度比另一个慢
- javascript - 在页面滚动期间单独触发一个数字计数器的多个实例
- node.js - 使用nodeJS从excel中获取下拉值
- character-encoding - 狮身人面像搜索:结果中缺少重音符号/变音符号
- ios - 集合视图的委托/数据源方法在哪些队列中执行?
- python - 与 defaultdict 结合使用时,计数器排序丢失
- javascript - wpcf7 和 GTM 事件监听器 -> 标签触发问题
- java - 添加链接以编辑文本并将它们存储在firebase数据库中时链接消失
- sql - SQL Server 在列中搜索相同文本的多个实例
- iis - IIS web.config 使子文件夹无法使用,但在一个域上