url-loader をダウンロード糸を追加 -D URLローダー モジュール: { ルール: { テスト: /\.(jpeg|jpg|png|svg|gif)$/, 使用: { loader: 'url-loader', // デフォルトは es6 モジュールです options: { // 設定 esModule: false, // common.js 仕様を使用します outputPath: 'images', // 出力ファイル ディレクトリ名: 'images/[contenthash:4].[ext]', limit: 20*1024 // 20k未満の場合はbase64に変換します } } } ] } 小さな画像がbase64に変換されていることがわかります 完全なコード// webpackはnodeをベースにしているので、module.exportsを使用します 定数パス = require("パス"); let HtmlWebpackPlugin = require("html-webpack-plugin"); // HTML テンプレートを生成する const { CleanWebpackPlugin } = require("clean-webpack-plugin"); // 各パッケージ化の前に dist をクリアする const MiniCssExtractPlugin = require("mini-css-extract-plugin"); // CSSをマージ // const OptimizeCssAssetsWebpackPlugin = require("optimize-css-assets-webpack-plugin") // CSS を圧縮する const CssMinimizerWebpackPlugin = require("css-minimizer-webpack-plugin"); // 最新の圧縮された CSS const TerserWebpackPlugin = require("terser-webpack-plugin"); // uglify の代わりに js を圧縮します。uglifyjs は es6 構文をサポートしていないため、uglifyjs-webpack-plugin の代わりに terser-webpack-plugin を使用します。 const webpack = require("webpack"); // 内部にグローバル変数を提供できる ProvidePlugin があります const commonCssConfig = [ // 共通 CSS 構成 MiniCssExtractPlugin.loader, 「cssローダー」、 { ローダー: "postcss-loader", オプション: //css互換性設定 postcssOptions: { プラグイン: [[require("postcss-preset-env")()]], }, }, }, ]; // 共通 babel トランスコーダ設定 const babelConfig = { ローダー: 'babel-loader', オプション: プリセット: [ "@babel/プリセット環境" ]、 「プラグイン」: [ ["@babel/plugin-proposal-decorators", { "legacy": true }], ["@babel/プラグイン提案クラスのプロパティ"] ] } } // 共通プラグイン設定 const commonPlugin = [ // html-webpack-プラグイン 新しいHtmlWebpackプラグイン({ template: "./src/index.html", // テンプレートを指定します filename: "index.html", // 出力ファイル名を指定します }), // new HtmlWebpackPlugin({ // 複数のテンプレート // template: './src/index.html', // テンプレートを指定 // filename: 'main.html', // 出力ファイル名を指定 // }), // クリーンなWebpackプラグイン new CleanWebpackPlugin(), // このプラグインを使用して、毎回 dist ディレクトリを生成する前に dist ディレクトリを削除します // mini-css-extract-plugin 新しい MiniCssExtractPlugin({ // CSS を抽出してパブリック フォルダーに配置します。ファイル名: "css/[name].[hash:4].css", // CSS パブリック ファイルをマージします }), // css-minimizer-webpack-プラグイン new CssMinimizerWebpackPlugin(), // 圧縮された CSS の新しいバージョン // terser-webpack-プラグイン 新しいTerserWebpackPlugin({ // js を圧縮する test: /\.js(\?.*)?$/i, //圧縮に関係するファイルを一致させる parallel: true, //複数のプロセスを同時に実行する terserOptions: { //簡潔な圧縮構成出力: { コメント: false }, 圧縮: { // pure_funcs: ["console.log"], // console.log を削除 }, }, extractComments: true, // コメントを別のファイルに分割する }), // グローバル変数を挿入し、グローバルに使用します。新しい webpack.ProvidePlugin({ を導入する必要はありません。 $:"jQuery" }) ] モジュール.エクスポート = { // 古いバージョンの圧縮された CSS // 最適化: { // 最小化ツール: [新しい OptimizeCssAssetsWebpackPlugin] // }, //エントリ構成エントリ: "./src/index.js", // モード設定 mode: "production", // モードを指定します。デフォルトはproductionモードです。開発モードはコードの表示に便利です // 設定出力をエクスポートします: { path: path.resolve(__dirname, "dist"), // __dirname はルートディレクトリを表します M:\47-webpack-study\01-webpack\dist filename: "js/[name].[hash:4].js", //出力ファイル名を指定します // [name]は動的な名前で、キャッシュを避けるためのハッシュ値が追加されます。デフォルトは20桁のハッシュ値です /* ハッシュの役割: たとえば、初めてパッケージ化する場合、ファイルはブラウザによってキャッシュされます。2 回目にパッケージ化する場合、ファイル名が変更されていないと、ブラウザは最新のコードをダウンロードしないため、ハッシュが役立ちます。ハッシュはコンテンツ ハッシュ値とも呼ばれます。コンテンツが変更される限り、ハッシュは変更され、キャッシュされず、常に最新の状態に保たれます*/ }, // webpack-dev-server は devServer を設定します: { host: "localhost", // ホスト port: "9527", // ポート open: true, // 自動的に開く historyApiFallback: true, // ページが見つからない場合は、デフォルトで index.html にジャンプします compressed: true, //すべてのサービスに対してgzip圧縮を有効にする hot: true, //ホットアップデートを開始する proxy: { // プロキシ設定 "/api": { ターゲット: "http:localhost:5000", 変更元: true、 }, }, }, // ローダー構成モジュール: { ルール: { テスト: /\.html$/, use: 'html-withimg-loader', //HTML で画像を使用するためのプラグイン}, { テスト: /\.js$/, 使用: babelConfig // babelトランスコーダ設定}, { テスト: /\.css$/, 使用法: [...commonCssConfig], // CSS の順序は右から左、下から上です}, { テスト: /\.less$/, 使用方法: [...commonCssConfig,'less-loader'], // less の順序は右から左、下から上です}, { テスト: /\.scss$/, 使用方法: [...commonCssConfig,"sass-loader"], // sass の順序は右から左、下から上です}, // { // テスト: /\.(jpeg|jpg|png|svg|gif)$/, // 使用: { // loader: 'file-loader', // デフォルトでは es6 モジュールが使用されます // options: { // 構成 // esModule: false, // common.js 仕様を使用します // outputPath: 'images', // 出力ファイル ディレクトリ // name: 'images/[contenthash:4].[ext]', // } // } // } { テスト: /\.(jpeg|jpg|png|svg|gif)$/, 使用: { loader: 'url-loader', // デフォルトは es6 モジュールです options: { // 設定 esModule: false, // common.js 仕様を使用します outputPath: 'images', // 出力ファイル ディレクトリ名: 'images/[contenthash:4].[ext]', limit: 20*1024 // 20k未満の場合はbase64に変換します } } } ]、 }, // プラグイン設定 plugins: [...commonPlugin], // サードパーティのパッケージを除外する externals: { jQuery: '$', } }; Webpackで画像をbase64形式に変換しないように設定する開発プロセスでは、画像のアップロードなど、画像を base64 に変換することが一般的です。ただし、base64 に変換した後は画像が区別しにくくなり、画像名に基づいて他の操作を実行できなくなるため、画像を base64 に変換したくない場合があります。では、Webpack で画像が base64 に変換されるのを禁止するにはどうすればよいでしょうか。 実は、とても簡単です。Webpack の設定ファイル webpack.base.conf.js を修正し、下の図に示すように、モジュールの下のルール内の画像処理オプションの制限を 1 に変更するだけです。 webpackイメージをbase64に変換する実装例についてはこれで終了です。webpackイメージをbase64に変換する関連コンテンツについては、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSSスタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する
目次単一条件単一データフィルタリング単一条件複数データフィルタリング複数の条件付きデータフィルタリン...
目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...
目次1.watchは一般的なデータ(数値、文字列、ブール値)の変更を監視します。 1. 数値2. 文...
進捗バーがスムーズではないフロントエンドを学ぶ学生のほとんどは、オーディオプレーヤーやビデオプレーヤ...
背景webpackのバージョンを確認したいのですが、webpack -vを実行するとエラーが報告され...
ローカルの MySQL バージョンが比較的低いため、最近 MySQL のバージョンをアップグレードす...
開発中にこのような問題に遭遇しましたビデオ視聴記録が 100 に更新されると、視聴されたことを意味し...
目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...
1. ダウンロード参考: 2. D:\MySQL\mysql-5.7.24 などの固定の場所に解凍し...
このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...
多くの人が MySQL の起動時にこのエラーに遭遇しています。まず、このエラーの前提は、サービス ス...
ルートユーザーのパスワードを初期化するプロセスと、よくある2つの問題の解決策が含まれています。 1....
目次ファイルアップロードのための2つのソリューションファイルストリーム(フォームデータ)に基づくクラ...
Spring jdbc のデータベース操作オブジェクト モデルの詳細な例Spring Jdbc デー...
目次序文1. Vue2 のライフサイクルインスタンスのライフサイクルその他のライフサイクルフック2....