Webpack根据webpack.config.js中的生产模式优化和压缩CSS和Javascript。

问题描述 投票:0回答:1
我在package.json中具有以下NPM脚本:

"scripts": { "start": "cross-env NODE_ENV=development webpack --mode development", "build": "cross-env NODE_ENV=production webpack --mode production" },

  1. 如果我运行npm run build

    生产

模式),我想添加optimization(请参见下文)以压缩CSS并Uglify Javascript。我该如何实现?优化:{最小化器:[新的TerserJSPlugin({}),新的OptimizeCSSAssetsPlugin({})],},

  • 如果我运行npm start,我想watch这些文件,并且除了optimization外,其他与生产模式相同。我正在构建一个Drupal站点,因此我也需要在开发中构建资产。
  • 我的webpack.config.js现在看起来像这样:

    const path = require('path'); const MiniCssExtractPlugin = require("mini-css-extract-plugin"); const CopyPlugin = require('copy-webpack-plugin'); const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); const TerserPlugin = require('terser-webpack-plugin'); const webpack = require('webpack'); const autoprefixer = require('autoprefixer'); const config = { entry: { main: "./src/index.js", courses: "./src/courses.js", vendor: "./src/vendor.js" }, output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist') }, plugins: [ new MiniCssExtractPlugin({ filename: '[name].css' }), new CopyPlugin([ { from: './src/assets/images', to: 'assets/images' }, { from: './src/assets/icons', to: 'assets/icons' } ]), ], module: { rules: [ { test: /\.css$/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader', options: { importLoaders: 1 } }, 'postcss-loader', ] }, { test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/, use: { loader: 'file-loader', options: { name: '[name].[ext]', outputPath: './assets/fonts', }, }, } ] } }; module.exports = (env, argv) => { if (argv.mode === 'development') { //... } if (argv.mode === 'production') { //... } return config; };

    我如何构建它?

    我在package.json中有以下NPM脚本:“ scripts”:{“ start”:“ cross-env NODE_ENV = development webpack --mode development”,“ build”:“ cross-env NODE_ENV = production webpack-模式...

    npm build webpack-4 npm-scripts npm-start
    1个回答
    0
    投票
    我通过如下调整webpack.config.js来解决它:
    © www.soinside.com 2019 - 2024. All rights reserved.