美文网首页工作生活
webpack让文件动起来(css和js文件哈希变化)

webpack让文件动起来(css和js文件哈希变化)

作者: 最底层的技术渣 | 来源:发表于2019-07-02 23:34 被阅读0次

    HtmlWebpackPlugin插件,可以把打包后的 CSS 或者 JS 文件引用直接注入到 HTML 模板中,这样就不用每次手动修改文件引用了。

    安装

    npm install --save-dev html-webpack-plugin
    
    const path = require('path');
    //一、导入插件包
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
    const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin');
    const autoprefixer = require('autoprefixer');
    
    module.exports = {
      mode: 'production',
      entry: './src/index.js',
      output: {
    //二、增加一个hash参数
        filename: 'main.[hash].js',
        path: path.resolve(__dirname, './dist')
      },
      module: {
        rules: [
          {
            test: /\.(sa|sc|c)ss$/,
            use: [
              MiniCssExtractPlugin.loader,
              {
                loader: 'css-loader'
              },
              {
                loader: 'postcss-loader',
                options: {
                  ident: 'postcss',
                  plugins: loader => [autoprefixer({ browsers: ['> 0.15% in CN'] })]
                }
              },
              {
                loader: 'sass-loader'
              }
            ]
          }
        ]
      },
      plugins: [
        new MiniCssExtractPlugin({
          filename: '[name][hash].css',
          chunkFilename: '[id][hash].css'
        }),
    //三、输出注入文件的一些指定内容
        new HtmlWebpackPlugin({
          title: '我是title', // 默认值:Webpack App
          filename: 'main.html', // 默认值: 'index.html' //输出文件名
          template: path.resolve(__dirname, 'src/index.html'), //模板地址
          minify: {
            collapseWhitespace: true, //去除空白
            removeComments: true, //删除注释评论
            removeAttributeQuotes: true // 移除属性的引号 //id="div" => id =div
          }
        })
      ],
      optimization: {
        minimizer: [
          new UglifyJsPlugin({
            cache: true,
            parallel: true,
            sourceMap: true // set to true if you want JS source maps
          }),
          new OptimizeCSSAssetsPlugin({})
        ]
      }
    };
    
    最终生成的部分效果图

    相关文章

      网友评论

        本文标题:webpack让文件动起来(css和js文件哈希变化)

        本文链接:https://www.haomeiwen.com/subject/gmlxhctx.html