require-ensure

    • 说明: require.ensure在需要的时候才下载依赖的模块,当参数指定的模块都下载下来了(下载下来的模块还没执行),便执行参数指定的回调函数。require.ensure会创建一个chunk,且可以指定该chunk的名称,如果这个chunk名已经存在了,则将本次依赖的模块合并到已经存在的chunk中,最后这个chunk在webpack构建的时候会单独生成一个文件。
    • 语法:require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])
      • dependencies: 依赖的模块数组
      • callback: 回调函数,该函数调用时会传一个require参数
      • chunkName: 模块名,用于构建时生成文件时命名使用
    • 注意点:requi.ensure的模块只会被下载下来,不会被执行,只有在回调函数使用require(模块名)后,这个模块才会被执行。

这里有三个参数,第一个参数是个数组,标明依赖的模块,这些会提前加载,第二个是回调函数,在这个回调函数里面的require的文件会被单独打包成一个chunk,不会和主文件打包在一起,这样就生成了两个chunk,第一次加载时只加载主文件,当点击时就会加载单独打包的chunk。这里的坑是,我想自己设置个名字叫oth,但是打包后仍然是webpack自动配置的名字,并且路径也不对,这让我郁闷好久啊,官方文档直说配置个名字就可以单独打包成自己写的名字了,根本没说还需要配置什么,终于找了好久终于在网上看到有人说还需要配置chunkFilename,和publicPath,好吧去看这俩的文档解释,才发现在介绍publicPath时提到了按需加载,并且说的不是很直接,意思就是按需加载单独打包出来的chunk是以publicPath会基准来存放的。好吧,另外还要配置chunkFilename:[name].js这样才会最终生成正确的路径和名字

webpack-dev-server环境下,path、publicPath、区别与联系

path:指定编译目录而已(/build/js/),不能用于html中的js引用。

publicPath:虚拟目录,自动指向path编译目录(/assets/ => /build/js/)。html中引用js文件时,必须引用此虚拟路径(但实际上引用的是内存中的文件,既不是/build/js/也不是/assets/)。

最新文章

  1. Linux中进行单文件内容的复制
  2. PostgreSQL隐藏字段tableoid
  3. HDU2653 BFS+优先队列
  4. Dev用于界面按选中列进行分组统计数据源(实用技巧)
  5. [游戏模版20] Win32 物理引擎 加速运动
  6. SupportV7包中 SwipeRefreshLayout 修改下拉控件的距离
  7. EntityFramework系列:Repository模式与单元测试
  8. HOSTS文件详解【win|mac】
  9. DOS下快速删除文件
  10. Android 开源项目DiskLruCache 详解
  11. hadoop2 作业执行过程之map过程
  12. springmvc工作流程
  13. easyui-treegrid移除树节点出错
  14. php 之 类,对象
  15. pthread_wrap.h
  16. 孤立的SQL用户
  17. 原生CSS动画回调事件
  18. MVC架构中的Repository模式 个人理解
  19. JS数据类型之String类型
  20. iOS TouchID & FaceID

热门文章

  1. logback中MDC使用
  2. 模拟window桌面实现
  3. 安装PHP扩展-----phpredis
  4. QA规范
  5. jquery筛选数组方法——$.grep(),$.map()
  6. Python巨蟒全栈开发目录
  7. pipreqs
  8. Seek the Name, Seek the Fame---poj2752(kmp中的Next数组)
  9. AndroidStudio修改常用快捷键
  10. Incorrect string value: '\xF0\x9F\x98\x84\xF0\x9F 表情插入mysql 报错