• webpack基础配置信息


    /**
     * 开发环境下配置
     *
     */


    // webpack.config.js 配置文件

    const { resolve } = require('path') // 安装node.js自带
    const MtmlWebpackPlugin = require('html-webpack-plugin') //需要npm安装
    // 提取css成单独的文件
    const MiniCssExtractPlugin = require('mini-css-extract-plugin') //需要npm安装

    // 压缩css
    const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin') //需要npm安装

    module.exports= {
        entry: './src/index.js', //入口文件,单入口
     
      //多文件入口
       entry:{
        main: './src/index.js',
        test: './src/test.js'
       }

        output: {
            filename: 'js/build.js', //打包输出文件
            // _dirname node.js变量表示当前文件目录绝对路径
            // build 打包后的文件名
            path: resolve(__dirname, 'build'),
         clean: true 清除上次打包文件
        },

        // loader 配置
        module:{
            rules:[
                {
                    // 正则匹配.css结尾的文件
                    test: /\.css$/,
                    // 使用那些loader进行处理
                    use:[
                        // loader执行顺序从右到左  css-loader ->  style-loader
                        // "style-loader",
                        // MiniCssExtractPlugin.loader 取代style-loader
                        MiniCssExtractPlugin.loader,
                        "css-loader"
                    ]
                },
                {
                    // 处理less资源
                    test: /\.less$/,
                    // 需要安装两个模块,less,less-loader
                    use:[
                        "style-loader",
                        "css-loader",
                        "less-loader",
                    ]
                },
                {
                    // 处理html中img资源
                    text: /\.html$/,
                    loader: "html-loader"
                   
                },
                // 处理图片资源
                {
                    test: /\.(png|jpg|gif)$/,
                    // 多个loader需要处理使用use,单个使用loader即可
                    loader: 'url-loader',
                    options:{
                        // 表示图片大小,小于8kb,就会被base64处理
                        limit: 8 * 1024,
                        name:"[hash:10].[ext]", //名字取哈希地址前10位,[ext]取原来的拓展名
                        outputPath:'image', // 将处理好的img放到image文件中去

                        // 关闭es6模块化
                        esModule: false
                    }
                },
                // 处理其它的资源
                {
                    exclude: /\.(png|jpg|css|less|gif|js|html)$/,
                    loader: "file-loader",
                    options:{
                        outputPath:'tool', //将处理好的文件放到tool文件中
                        name: "[hash:10].[ext]" //名字取哈希地址前10位,[ext]取原来的拓展名
                    }
                }
            ]
        },

        // plugins 插件配置
        plugins:[
            // 将打包好的文件自动引入到index.html
            new MtmlWebpackPlugin({
                template: './src/index.html',
            filename: 'app.html', 重命名文件
            inject: 'body', 自定义script生成的位置在bod里面

                // js,html压缩
                minify:{
                    // 移除空格
                    collapseWhitespace: true,
                    // 移除注释
                    removeComments: true
                }
            }),
            new MiniCssExtractPlugin({
                // 设置输出文件名
                template: 'css/pulice.css'
            }),
            // 压缩css
            new OptimizeCssAssetsWebpackPlugin()
        ],

        // 打包模式
        mode: 'development', //开发环境
        // mode: 'production' //生产环境
      devtool: 'inline-source-map' //在开发模式下追踪代码


        // 开发服务器,用来自动化编译,自动打开浏览器,自动刷新浏览器
        // 启动devServer指令:npx webpack-dev-server  需要npm下载此包
        devServer:{
            contentBase: resolve(__dirname, 'build'),

            // 启动gzip压缩
            compress: true,

            // 端口号
            port: 3306,

            // 自动打开浏览器
            open: true

        }
    }
  • 相关阅读:
    net core 使用 rabbitmq
    asp.net core WebApi 返回 HttpResponseMessage
    asp.net core 2.1 WebApi 快速入门
    JQuery EasyUI combobox动态添加option
    php截取字符去掉最后一个字符
    JQuery EasyUI Combobox的onChange事件
    对于不返回任何键列信息的 selectcommand 不支持 updatecommand 的动态 sql 生成
    Access2007 操作或事件已被禁用模式阻止解决办法
    Easyui 中 Tabsr的常用方法
    Win 7 IE11不能下载文件,右键另存为也不行
  • 原文地址:https://www.cnblogs.com/tlfe/p/16455521.html
Copyright © 2020-2023  润新知