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スタイルシートを効率的に使用するためのヒント: スタイルシートの力を最大限に活用する
成果を達成する実装コードhtml <base href="https://s3-us...
次のコマンドを実行します: glxinfo | grep レンダリング結果が「はい」の場合、グラフィ...
また、Dockerを使用してDjangoプロジェクトをデプロイするのも非常に簡単です。とても良いです...
コードサンプルヘッドタグにコード行を追加します: XML/HTML コードコンテンツをクリップボード...
序文一般的なビジネス シナリオでは、検索ボックスへの入力が完了した後、検索データを取得するために関連...
共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...
エラー メッセージ:ストアの更新、挿入、または削除ステートメントが予期しない行数 (0) に影響を与...
この記事を読む前に、ボリュームとバインドマウントの基本を理解しておいてください。詳細については、次の...
この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...
最初はブラウザのスクロールバーのスタイルを変更して効果を実現したいと思っていましたが、情報を調べてみ...
ソースコードの例: https://codepen.io/shadeed/pen/03caf6b36...
ページ上の画像を強調表示することは非常に一般的です。ここでは、jQuery を使用して画像を強調表示...
この記事の例では、WeChatアプレットマップで使用される具体的な実装コードを参考までに共有していま...
登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...
この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....