複数の HTML ファイルを使用してそれ自体に処理するwebpack
(v3.5.6) ビルドがあり、 . 構成はビルドには問題なく機能しますが、 (v2.7.1)を使用すると失敗します。これは、ソース HTML ファイルのコメントが無視されないように見えるためです。HTML のコメント セクションからリソースを要求しようとしますが、それらのリソースの一部は現時点では存在しません。html-loader
url-loader
Webpack Dev Server
Webpack Dev Server
からのサンプル エラーを次に示します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 :
const path = require('パス'); const webpack = require('webpack'); const CleanWebpackPlugin = require('clean-webpack-plugin'); const env = process.env.NODE_ENV; module.exports = { エントリ: './entry.js', 出力: { パス: path.resolve(__dirname, 'dist'), ファイル名: 'bundle.js' }、 モジュール: { ルール: [{ テスト: /\.html$/, 使用する: [ { ローダー: 'ファイルローダー', オプション: { 名前: '[名前].[拡張子]', }、 }、 { ローダー: '抽出ローダー', }、 { ローダー: 'html-ローダー', オプション: { 属性: ['img:src'], 補間:真、 }、 }、 ]、 }、 { テスト: /\.js$/, 除外: /(node_modules)/, 使用する: { ローダー: 'babel-loader', オプション: { プリセット: ['env'] } } }、 { テスト: /\.css$/, 使用: env === 'プロダクション' ? ExtractTextPlugin.extract({ フォールバック: 'style-loader', 使用: ['css-loader'] }) : ['style-loader', 'css-loader'] }、 { テスト: /\.(png|jpg|gif|svg)$/, 使用する: [{ ローダー: 'url-loader', オプション: { 制限: 8192, 名前: '[パス][名前].[拡張子]' } }] } ] }、 解決: { エイリアス: { 'vue$': 'vue/dist/vue.common.js', }、 }、 プラグイン: [ new CleanWebpackPlugin(['dist', 'build']) ]、 };
webpack.dev.js :
const merge = require('webpack-merge'); const common = require('./webpack.common.js'); module.exports = merge(common, { 開発サーバー: { contentBase: './dist' }、 });
webpack.prod.js:
const merge = require('webpack-merge'); const UglifyJSPlugin = require('uglifyjs-webpack-plugin'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const common = require('./webpack.common.js'); module.exports = merge(common, { プラグイン: [ 新しいUglifyJSPlugin()、 new ExtractTextPlugin({ ファイル名: 'styles.css' })) ] });
entry.js:
require('./about-us.html'); require('./index.html'); require('./css/style.css'); require('./js/sidebar.js');