我有一个webpack
(v3.5.6)构建,使用html-loader
多个 HTML 文件并将其处理到自身中,使用url-loader
. 该配置非常适合构建,但在使用Webpack Dev Server
(v2.7.1) 时失败,因为Webpack Dev Server
似乎没有忽略源 HTML 文件中的注释。它试图从 HTML 的注释部分获取资源,而其中一些资源目前不存在。
这是来自以下的示例错误Webpack Dev Server
:
./about-us.html 中的错误 未找到模块:错误:无法解析 'C:\Users\usr\dev\www' 中的 './img/old-image.png' @ ./about-us.html @ ./entry.js @multi (webpack)-dev-server/client?http://localhost:8080 ./entry.js
我的(未完成的)webpack
配置如下:
webpack.common.js:
常量路径 = 要求('路径'); 常量 webpack = require('webpack'); 常量 CleanWebpackPlugin = require('clean-webpack-plugin'); 常量 env = process.env.NODE_ENV; 模块.exports = { 条目:'./entry.js', 输出: { 路径:path.resolve(__dirname, 'dist'), 文件名:'bundle.js' }, 模块: { 规则:[{ 测试:/\.html$/, 利用: [ { 加载器:'文件加载器', 选项: { 名称:'[名称]。[分机]', }, }, { 装载机:'提取装载机', }, { 加载器:'html-loader', 选项: { attrs: ['img:src'], 插值:真, }, }, ], }, { 测试:/\.js$/, 排除:/(node_modules)/, 利用: { 加载器:'babel-loader', 选项: { 预设:['env'] } } }, { 测试:/\.css$/, 使用: env === '生产' ? ExtractTextPlugin.extract({ 后备:'样式加载器', 使用:['css-loader'] }) : ['style-loader', 'css-loader'] }, { 测试:/\.(png|jpg|gif|svg)$/, 利用: [{ 加载器:'url-loader', 选项: { 限制:8192, 名称:'[路径][名称]。[分机]' } }] } ] }, 解决: { 别名:{ 'vue$': 'vue/dist/vue.common.js', }, }, 插件:[ 新的 CleanWebpackPlugin(['dist', 'build']) ], };
webpack.dev.js:
常量合并 = 要求('webpack-merge'); const common = require('./webpack.common.js'); module.exports = 合并(常见,{ 开发服务器:{ contentBase: './dist' }, });
webpack.prod.js:
常量合并 = 要求('webpack-merge'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const common = require('./webpack.common.js'); module.exports = 合并(常见,{ 插件:[ 新的 UglifyJSPlugin(), 新的 ExtractTextPlugin({ 文件名:'styles.css' }) ] });
entry.js:
要求('./about-us.html'); 要求('./index.html'); 要求('./css/style.css'); 要求('./js/sidebar.js');