前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CopyWebpackPlugin 在构建过程复制文件到输出目录

CopyWebpackPlugin 在构建过程复制文件到输出目录

原创
作者头像
用户7737280
发布2024-08-28 10:23:20
560
发布2024-08-28 10:23:20

const path = require("path");

const MiniCssExtractPlugin = require("mini-css-extract-plugin");

const HtmlWebpackPlugin = require("html-webpack-plugin");

const commonStyleLoader = [

  MiniCssExtractPlugin.loader,

  "css-loader",

  {

    loader: "postcss-loader",

    options: {

      postcssOptions: {

        plugins: ["postcss-preset-env"],

      },

    },

  },

];

module.exports = {

  entry: "./src/index.js",

  output: {

    path: path.join(__dirname, "../dist"),

    filename: "[name].[contenthash:8].js",

  },

  resolve: {

    extensions: [".jsx", ".js", ".json"],

  },

  module: {

    rules: [

      {

        test: /\.css$/,

        exclude: /node_modules/,

        use: commonStyleLoader,

      },

      {

        test: /\.scss$/,

        exclude: /node_modules/,

        use: [...www.laipuhuo.com commonStyleLoader, "sass-loader"],

      },

      {

        test: /\.(js|jsx)$/,

        exclude: /node_modules/,

        use: ["babel-loader"],

      },

      {

        test: /\.(jp(e)g|png|gif)$/,

        type: "asset",

        parser: {

          dataUrlCondition: {

            maxSize: 8 * 1024,

          },

        },

        generator: {

          filename: "img/[name].[contenthash:8].[ext]",

        },

      },

    ],

  },

  plugins: [

    new MiniCssExtractPlugin({

      filename: www.laipuhuo.com "style/[name].[contenthash:8].css",

    }),

    new HtmlWebpackPlugin({

      template: "./public/index.html",

      inject: 'body',

      minify: {

        collapseWhitespace: true,

      }

    }),

  ],

};

const { merge } = require("webpack-merge");

const baseConfig = require("./webpack.base");

const devConfig = {

  mode: "development",

  devServer: {

    open: true,

    port: 8001,

    compress: true,

    hot: true

  },

};

module.exports = merge(devConfig, baseConfig);

const { merge } = require("webpack-merge");

const baseConfig = require("./webpack.base");

const CssMinimizerWebpackPlugin = require("css-minimizer-webpack-plugin");

const TerserWebpackPlugin = require("terser-webpack-plugin");

const { Clean www.laipuhuo.com WebpackPlugin } = require("clean-webpack-plugin");

const prodConfig = {

  mode: "production",

  optimization: {

    minimizer: [

      new CssMinimizerWebpackPlugin(),

      new TerserWebpackPlugin({

        parallel: true,

      }),

    ],

    splitChunks: {

      chunks: "all",

      cacheGroups: {

        vendor: {

          test: /[\\/]node_modules[\\/]/,

          filename: "[name].bundle.js",

        },

      },

    },

  },

  externals: {

    react: "React",

    "react-dom": "ReactDOM",

  },

  plugins: [new www.laipuhuo.com CleanWebpackPlugin()],

};

module.exports = merge(prodConfig, baseConfig);

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
SD-WAN 接入服务
SD-WAN 接入服务(SD-WAN Access Service)助力多分支轻松实现与云、数据中心的任意互联,具有即插即用、多地域覆盖、智能管控等特性,为企业多分支提供了更简单、可靠、智能的一站式上云的体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档