webpack学习笔记(二)

loader

1.处理css文件

npm i css-loader style-loader -D

module: {
    rules: [
      {
          //匹配规则,使用正则表达式
        test: /\.css$/,
        //'style-loader'需要在 'css-loader'前面,loader是从右往左执行的
        use: ['style-loader', 'css-loader']
      }
    ]
  }

css-loader是将匹配到的css文件解析

style-loader是将解析出来的结果生成style节点以内联样式的形式放到html网页中

2.处理less文件

npm i less less-loader -D

 {
        test: /\.less$/,
        use: ['style-loader', 'css-loader', 'less-loader']
      }

3.处理sass或者scss文件

 {
        test: /\.s(a|c)ss$/,//sass文件更新过一版所以不仅叫sass文件,还有scss文件
        use: ['style-loader', 'css-loader', 'sass-loader']
      }

4.处理图片,或者font字体资源

图片

npm i file-loader url-loader -D

 {
        test: /\.png$/,
        use: 'file-loader'
      }

 {
        test: /\.png$/,
        use: {
          loader: 'url-loader',//url-loader可以对图片 进行配置
          options: {
            limit: 5 * 1024,//图片小于5*1024将以base64格式显示,但是base64格式一般多占用30%的空间,所以也一般只有小图使用
              outputPath:'imgs'//打包时,将在打包目录下找这个目录
              name:'[name][hash].[ext]',//[原文件名字][hash值].[扩展名]
          }
        }
      }

字体图标把匹配规则改成字体图标的后缀名就可以了

test:/\.(woff|woff2|eot|svg|ttf)$/

5.babel

将es6转化为es5

npm i babel-loader @babel/core @babel/preset-env -D

如果想使用更高级的语法,可以使用@babel/plugin-proposal-class-properties

 module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['@babel/env'],//presets必须是array或者undifined
            plugins: ['@babel/plugin-proposal-class-properties', '@babel/plugin-transform-runtime']//也需要数组
          }
        },
        exclude: /node_modules/
      }
    ]
  }

使用generator

npm i @babel/plugin-transform-runtime -D

npm i @babel/runtime -S //上面包依赖于这个包

  1. .babelrc

官网推荐做法,将webpack中babel的options配置项放到单个文件中生效

{
  "presets": [
    "@babel/env"
  ], //presets必须是array或者undifined
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-transform-runtime"
  ]
}

7.对象上新增的方法,如数组的includes,低版本浏览器可能不兼容,需要转换

npm i @babel/polyfill -S

使用:import ‘@babel/polyfill’ 哪里使用了 哪里就需要引用

entry:[’@babel/polyfill’,’./app.js] //这样就引用一次就可以了

8.sourceMap

https://webpack.docschina.org/configuration/devtool/#devtool

9.插件

clean-webpack-plugin

该插件可以自动清除dist目录后重新生成,在npm run build中非常方便

npm i clean-webpack-plugin -D

https://www.npmjs.com/package/clean-webpack-plugin

copy-webpack-plugin 将一个目录下的文件打包后复制到另一个下面,用于解决静态资源assent目录下的引用

https://www.npmjs.com/package/copy-webpack-plugin

BannerPlugin这是webapck的内置插件,用于给打包的js文件加上版权注释信息

https://webpack.docschina.org/plugins/banner-plugin/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值