美文网首页
webpack设置版本号和处理成单独的文件

webpack设置版本号和处理成单独的文件

作者: 最底层的技术渣 | 来源:发表于2019-06-28 23:19 被阅读0次
    前言:webpack4 开始使用: mini-css-extract-plugin插件, 1-3 的版本可以用: extract-text-webpack-plugin

    一、新建一个webpack.production.config.jsjs文件

    二、安装mini-css-extract-plugin插件

    npm install --save-dev mini-css-extract-plugin
    

    三、接下来的 css的处理我们都把mode设置为 production

    module.exports = {
      mode: 'production', //将原来的development修改为production
      entry: './src/index.js',
    ……
    

    四、 抽取了样式,就不能再用 style-loader注入到 html 中了,所以将原来的style-loader改成MiniCssExtractPlugin.loader,

    const path = require('path');
    //一、导入插件
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    //二、判断是处于什么环境
    const devMode = process.env.NODE_ENV !== 'production'; // 判断当前环境是开发环境还是 部署环境,主要是 mode属性的设置值。
    
    module.exports = {
      mode: 'production', //生产环境务必记得修改
      entry: './src/index.js',
      output: {
        filename: 'main.js',
        path: path.resolve(__dirname, './demo')
      },
      module: {
            rules: [
                {
                    //加载css文件
                    //test:/\.css$/,
                    //use:['style-loader','css-loader'],
                    //加载css|sass|scss系列
                    //test:/\.(sc|c|sa)ss$/,
                    //use:['style-loader','css-loader','sass-loader'],
                    //加载css|sass|scss系列并启用source map
                    test: /\.(sc|c|sa)ss$/,
                    use: [
                        MiniCssExtractPlugin.loader,
                        {
                            loader: 'css-loader', options: {
                            sourceMap: true
                        }
                        },
                        {
                            loader: "postcss-loader",
                            options: {
                                sourceMap: true,
                                ident: "postcss",
                                plugins: loader=>[
                                    require('autoprefixer')({overrideBrowserslist: ['> 0.15% in CN']})
                                ]
                            }
                        },
                        {
                            loader: 'sass-loader', options: {
                            sourceMap: true
                        }
                        }]
                }
            ],
            //noParse:/jquery|lodash/
        },
    // 三、在module后加上插件
      plugins: [
        new MiniCssExtractPlugin({
          filename: devMode ? '[name].css' : '[name].[hash].css', // 设置最终输出的文件名
          chunkFilename: devMode ? '[id].css' : '[id].[hash].css'
        })
      ]
    };
    
    image.png

    再次运行打包:
    在 demo目录中已经把 css 抽取到单独的一个 css 文件中了。修改 html,引入此 css 就能看到结果了。

    打包命令会经常使用,这个时候也可以在pack.json文件中增加常用命令

    "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1",
       "build": "npx webpack",
       "demo":"npx webpack --config webpack.production.config.js"
     },
    

    相关文章

      网友评论

          本文标题:webpack设置版本号和处理成单独的文件

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