WebPack

内容

Posted by Lan on July 17, 2020

webpack

  • 背景

有很多的内容并不能直接被浏览器所识别,所以需要一些工具去通过打包进行转换,比如less、sass、ts、图片等需要转换为浏览器可以识别的js和css等。

  • 基本内容

    • 基本要素

      • input
      • output
      • module: 即loader的配置,翻译非javascript文件为webpack可理解的文件(webpack自己只理解javascript)
      • plugins:执行范围更广、更具体的功能,与loader相比,loader只是翻译作用,但plugins作用更侧重于具体的功能,如html-webpack-plugin(生成html文件,为html文件中引入的外部资源如script、link动态添加每次compile后的hash,防止引用缓存的外部文件问题)、css压缩、图片压缩、定义环境变量等
      • mode: 模式,主要有开发模式和生产模式 ,生产模式会压缩js文件
            //webpack.config.js
      
      
            module.exports={
      
               
                entry:'./src/index.js',
                     
                output:{
                    path:path.resolve(__dirname,'dist'),
                    filename:'bundle.js'
      
                },
                module:{
                    rules:[
                              
                        //css翻译器
      
                        {
                            //正则匹配后缀
                            test:/\.css$/,
                            use:[
                                //从下往上执行
                                //创建style标签,将js样式资源插入
                                style-loader,
                                // 以commonjs标准将css文件模块加载到js中
                                css-loader,
                            ]
                        },
      
                        //lass翻译
      
                        {
                            //正则匹配后缀
                            test:/\.css$/,
                            use:[
                                //从下往上执行
                                //创建style标签,将js样式资源插入
                                style-loader,
                                // 以commonjs标准将css文件模块加载到js中
                                css-loader,
                                // lass转换成css
                                lass-loader,
                            ]
                        }
      
                    ],
                },
                      
                plugin:[
                    {
      
                    }
                ],
      
                mode:"development"
      
      
      
      
      
            }
      
      
    • webpack: 可以处理js、json文件,但不能处理css、图片等文件,所以要loader、plugins