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スタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する
MySQLのスイッチングデータ保存ディレクトリの実装方法今日、仕事中に、mysql が保存されている...
関連記事: MySQL8.0.20 インストール チュートリアルとインストールの問題に関する詳細なチ...
要件は、製品の評価データを渡すことであり、ページには対応する星の数が表示されます。 1. 異なる評価...
Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...
私はフロントエンド プロジェクトの開発に常に vscode を使用してきたため、現在ではいくつかの小...
最近 redis を使っていて、とても便利だと感じているのですが、インメモリ データベースを選択する...
1. Nginxのインストール手順1.1 公式サイトの紹介http://nginx.org/en/d...
パフォーマンス例えば: HTML: <div class="first"&...
まず次のコマンドを実行します: [root@mini61 setuptools-8.2.1]# py...
<br />出典: http://www.a-xuan.cn/?p=197 先ほどFac...
1: django-admin.py startproject プロジェクト名2: cd プロジェク...
1. 動作環境vmware14proウブントゥ 16.04LTS 2. 問題の説明vmware14P...
まず、MySQLをskip-grant-tablesモードで起動します: mysqld --skip...
コンテナを通じてローカル パブリック IP アドレスを取得します。ローカル IP アドレスを使用して...
まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...