我正在做一个使用html的前端项目。在我的项目中,我使用Webpack模块捆绑器。我使用image-webpack-loader包优化镜像。现在的问题是,当我运行开发服务器时,它image-webpack-loader也会在每次更改时运行,这需要更多的加载时间。我只想在生产中使用它。如果没有其他软件包的帮助,我怎么能做到这一点呢?这是我的第一个webpack项目。如果有人在这件事上帮助我,我会很高兴的。先谢了。
这是我的webpack.config.js文件
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const glob = require("glob");
module.exports = {
mode: "production",
entry: "./src/js/app.js",
output: {
path: path.resolve(__dirname, "dist"),
filename: "js/bundle.js",
},
devServer: {
static: {
directory: path.join(__dirname, "dist"),
},
watchFiles: ["src/**/*"],
compress: true,
port: 3000,
},
module: {
rules: [
{
test: /\.s[ac]ss$/i,
use: ["style-loader", "css-loader", "sass-loader"],
},
{
test: /\.html$/i,
loader: "html-loader",
},
{
test: /\.(png|jpe?g|gif|svg|ico|eot|ttf|woff)$/i,
type: "asset",
**use: [
{
loader: "image-webpack-loader",
options: {
mozjpeg: {
progressive: true,
quality: 65,
},
optipng: {
enabled: true,
optimizationLevel: 7,
},
pngquant: {
quality: [0.6, 0.8],
},
gifsicle: {
interlaced: false,
},
webp: {
quality: 75,
},
},
},
],
parser: {
dataUrlCondition: {
maxSize: 10 * 1024,
},
},**
generator: {
filename: "images/[name]-[hash][ext]",
},
},
],
},
plugins: [
...glob.sync("./src/**/*.html").map((file) => {
return new HtmlWebpackPlugin({
template: file,
filename: path.basename(file),
chunks: ["main"],
});
}),
],
};
字符串
这就是我说的问题
use: [
{
loader: "image-webpack-loader",
options: {
mozjpeg: {
progressive: true,
quality: 65,
},
optipng: {
enabled: true,
optimizationLevel: 7,
},
pngquant: {
quality: [0.6, 0.8],
},
gifsicle: {
interlaced: false,
},
webp: {
quality: 75,
},
},
},
],
parser: {
dataUrlCondition: {
maxSize: 10 * 1024,
},
},
型
请编辑这为生产和发展,以便我可以使用它到相同的文件
{
test: /\.(png|jpe?g|gif|svg|ico|eot|ttf|woff)$/i,
type: "asset",
**use: [
{
loader: "image-webpack-loader",
options: {
mozjpeg: {
progressive: true,
quality: 65,
},
optipng: {
enabled: true,
optimizationLevel: 7,
},
pngquant: {
quality: [0.6, 0.8],
},
gifsicle: {
interlaced: false,
},
webp: {
quality: 75,
},
},
},
],
parser: {
dataUrlCondition: {
maxSize: 10 * 1024,
},
},**
generator: {
filename: "images/[name]-[hash][ext]",
},
}
型
1条答案
按热度按时间txu3uszq1#
选项1.为每个环境单独配置webpack。
请参阅Production最佳实践:
我们通常建议为每个环境编写单独的webpack配置。
虽然我们将把生产和开发特定的部分分离出来,但请注意,我们仍将维护一个“公共”配置,以保持内容干燥。为了将这些配置合并在一起,我们将使用一个名为webpack-merge的实用程序。有了“公共”配置,我们就不必在特定于环境的配置中重复代码。
因此,
image-webpack-loader
将仅在webpack.prod.js
文件中使用。webpack.prod.js
文件用于生产构建。对于本地开发,您不需要在
webpack.dev.js
文件中包含这个加载器。选项2.使用
disable
选项我们需要在
webpack.config.js
文件中使用环境变量webpack.config.js
:字符串
CLI:
型