最近开始学习webpack,简单来说,webpack是一个打包工具。

webpack分为5大部分:

1.entry ,入口,简而言之,这是配置您的项目的打包入口的

2.output,这是配置打包的输出路径的

3.module,里面配置一些loader,比如css-loader,因为webpack只能识别js跟JSON

4.plugins,里面配置一些插件,比如HtmlWebpackPlugin,扩展项目的功能

5.mode,设置模式

实操记录:

1.在系统新建一个文件夹,然后用VSCODE打开项目

2.然后打开终端,输入npm init,因为webpack是基于node的,所以还没安装的话可以百度一下,傻瓜式操作,比较简单

3.npm init 之后会生成一个package.json,关于node的配置以及安装的包都在这里了

4.需要安装webpack  webpack-cli.;npm i webpack webpack-cli -D 

5.在package.json下新建一个webpack.config.js,这里就可以配置我刚刚列的5个要素了

6.命令 webpack --config  webpack.config.js   即可运行

下面贴上基本的一个配置范例

const minicss = require('mini-css-extract-plugin')
const HtmlwebpackPlugin = require('html-webpack-plugin')
const happypack = require('happypack')
const optcss = require('optimize-css-assets-webpack-plugin')
const path = require('path')
process.env.NODE_ENV = 'production'
module.exports={
    entry:"./src/index.js",
    output:{
        filename:'built.js',
        path:__dirname + "/build"

    },
    module:{
            rules:[
                {
                oneOf:[

                    {
                        test:/\.js$/,
                        use:[
                            'happypack/loader?id=babel',
                            {
                                loader:"thread-loader",
                                options:{
                                    workers:3
                                }
                            }
                        ],
                        include:['/src/'],
                        exclude:"/node_modules/"

                },
                {
                    test:/\.css$/,
                    use:[
                        minicss.loader,
                        'css-loader',
                        {
                            loader:"thread-loader",
                            options:{
                                workers:3
                            }
                        }
                    ]
                },
                {
                    test:/\.less$/,
                    use:[
                        minicss.loader,
                        'css-loader',
                        'less-loader'
                    ]
                }
            ]
         
        }
    ]
    },
    plugins:[
        new minicss({
            filename:'../src/static/css/test.css'
        }),
        new HtmlwebpackPlugin({
            template:'./index.html',
            minify:{
                collapseInlineTagWhitespace:true,
                removeComments:true
            }
        }),
        new optcss(),
        new happypack({
            id:"babel",
            loaders:['babel-loader?cacheDirectory'],
            threads:5
        }
    )
    ],
    mode:"development",
    devServer:{
        port:3000,
        compress:true,
        hot:true
    },
    // 开发环境
    devtool:'inline-source-map'
    // 生产环境,调试方便或者速度
    // hidden-sourec-map 隐藏源码
    // devtool:'source-map'/cheap-module-source-map
    
}

  这是这两天的收获,好好学习,天天向上。一切付出都会有收获