webpack练习

配置代码和笔记
git源代码
下载链接 git@github.com:zengbotao/webpack-practice.git
/*
 * @Description: 
 * @Autor: zengbotao@myhexin.com
 * @Date: 2022-09-16 09:58:47
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2022-09-16 14:54:21
 */
//安装所有的包都要注意版本,不要随意安装
const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin')
function resolve (dir) {
    return path.join(__dirname, dir);
}
module.exports = {
    entry: {
        main: './src/main',
    },
    output: {
        path: resolve('dist'),
        filename: "bundle.js",
        // publicPath:"dist/"  //这里不配置publicPath,容易导致dist/dist,目录重叠

    },

    module: {
        rules: [           
            // {
            //     test: /\.js$/,
            //     loader: 'babel-loader',
            //     exclude: /node_modules/
            // },
            {
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,//排除这些文档,也可以设置include
                use: {
                    loader: 'babel-loader',
                    //注意包和vue-cli的区别和版本,安装时-D
                    // "@babel/core": "^7.19.1",
                    // "@babel/preset-env": "^7.19.1",
                    // "babel-loader": "^8.2.5",
                    options: {
                        presets: ['@babel/preset-env'] // 预设:转码规则(用bable开发环境本来预设的)
                    }
                }
            },
            {
                test: /\.css$/,
                use: [ "style-loader", "css-loader"]
            },
            {
                test: /\.less/,
                use: [ "style-loader", "css-loader", 'less-loader']
            },            
            {
                test: /\.(gif|jpg|JPEG|png)\??.*$/,  
                use: [
                    {
                      loader: 'url-loader', // 匹配文件, 尝试转base64字符串打包到js中
                      // 配置limit, 超过8k, 不转64base格式, 
                      //而使用file-loader复制, 随机名, 输出文件
                      //file-loader不需要特别配置,只需要安装一下就可以了
                      options: {
                        limit: 8 * 1024,
                        name: 'assets/images/[name].[ext]',//将图片文件统一保存至assets/images文件夹
                      },
                    },
                  ],           
            },
            { // 字体图标打包到font目录
                test: /\.(eot|svg|ttf|woff|woff2)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            limit: 1 * 1024,//超过1k, 不转64base格式, 
                            // 配置输出的文件名
                            name: 'assets/fonts/[name].[ext]',
                        }
                    }
                ]
            }
           
        ]
    },
//     resolve: {
//         extensions: ['.js', '.vue'],
//         alias: {
//             'vue': 'vue/dist/vue.esm.js',
//             '@': resolve('../src'),
//             '@views': resolve('../src/views'),
//             'assets': resolve('../src/assets/'),
//             'store': resolve('../src/store/'),
//             'jquery': resolve('../src/common/js/jquery.js')
//         }
//     },
    // 增加一个plugins
    plugins: [
        new HtmlWebpackPlugin({
            title: 'My App',//需要在html中配置<title><%= htmlWebpackPlugin.options.title %></title>
            filename:'index.html',
            template: './public/index.html', // 以此为基准生成打包后html文件,打包的js文件会默认引入对应的html文件            
        })
        // new webpack.ProvidePlugin({
        //     $: "jquery",
        //     jQuery: "jquery"
        // }),
        // new CleanWebpackPlugin('dist/*.*', {
        //     root: __dirname,
        //     verbose: true,
        //     dry: false
        // })
   ],
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

waves0001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值