• webpack小知识点


    1:webpack的默认配置文件 webpack.config.js
    
    2:package.json文件 private 字段表示 是否私有包,不发布到 npm 中
    
    3:Node.js 中,__dirname 总是指向被执行 js 文件的绝对路径,所以当你在 /d1/d2/myscript.js 文件中写了 __dirname, 它的值就是 /d1/d2
    使用方式
    const path = require('path')
    path.resolve(__dirname, '文件夹')
    http://nodejs.cn/api/path.html#path_path_resolve_paths

      4:webpack --config webpack.config.dev.js
      添加--config 选项,可以修改webpack运行的配置文件

     

      5:url-loader和file-loader的简单区别
      url-loader是对file-loader的上层封装

      使用file-loader的情况下,图片较多的话,会发多次http请求,降低页面性能
      url-loader存在一个options{limit: '数值'},小于该数值情况,会将引入的图片编码,生成dataURl
      再把这串字符打包到文件中,最终只需要引入这个文件就能访问图片了

      file-loader底层处理文件的流程:首先会将该文件移动到出口文件夹当中,然后返回一个相对(出口文件夹)路径到引入该文件的地方,在使用该路径

    6:webpack中loader的执行顺序,从下到上,从右到左

    7:使用cdn
    output 选项中添加 publicPath: 'http://cdn.com.cn', //所有注入到html的js文件都会加上这个路径

      8:devtools [] 解决问题是错误出错的地方
      sourceMap:本质是一个映射关系
      inline: 会将map文件转化成64位编码注入到main.js文件中
      cheap: 只告诉我错误在第几行就可以,而不用具体到列;并且只针对业务文件,而不会处理第三方模块
      module:他针对第三方模块的代码
      eval:打包速度最快;通过eval执行方式代码
      最佳实践:
      开发环境 cheap-module-eval-source-map
      生成环境 cheap-module-source-map

    9:Tree Shaking 只支持ES Module的引入
    (ES6 引入底层是静态的 AMD底层还是属于动态)

      在开发环境中 以下配置就可以使Tree Shaking 产生作用
      optimization :{
      usedExports: true,//tree shaking配置
      }

      在package文件中
      sideEffects:[] //数组中填写的是不对某些文件进行tree shaking

      10:使用webpack-merge 对配置文件进行合并

      11:载主要是使用ES6 的 import()语法 异步添加模块

      12:使用 MiniCssExtractPlugin css文件进行code spliting

      OptimizeCSSAssetsPlugin 对css文件进行压缩

      13:提升webpack的打包性能
      {
      升级node 和 npm 的版本
      在尽可能少的模块上使用loader
      插件尽可能的精简和可靠
      resolve参数的合理配置{
        extensions: ['.js', '.jsx','.vue'], //当引入模块时,可以省略以这些为后缀的文件 顺序从左到右
        mainFiles: ['index', 'main'], //当引入模块时,会自动加载文件夹下index main 等这些名称的文件
        alias: {
          panrui: path.resolve(__dirname, './src/index')
        }, //给文件路径起个别名,当文件层级太多时比较方便
       }

      使用DllPlugin插件;使用tree shaking ;splichuncks

      }

    不忘初心,不负梦想
  • 相关阅读:
    pyftpdlib 搭建FTP服务器
    numpy 解一道简单数学题
    python 实现词云
    个人的毕业长足---- 暴走北京
    Tensorflow of GPU, hello fish by version 0.8.
    图像识别
    用一个Inception v3 架构模型实现简单的迁移学习(译:../tensorflow/tensorflow/examples/image_retraining/retrain.py)
    19.液晶屏的原理
    18.DMA-6410
    17.DMA-2440
  • 原文地址:https://www.cnblogs.com/panrui1994/p/11896405.html
Copyright © 2020-2023  润新知