一. 历史介绍

1. 规范

  • AMD
  • Commonjs||CMD
  • UMD

参考:
认识AMD、CMD、UMD、CommonJS

2. 工具

  • npm
  • bower
  • webpack
  • browserify

参考:
bower 和 npm 的区别详细介绍
npm、cnpm、bower安装区别
gulp/grunt和browserify/webpack的区别

二. webpack打包模块源码

  • 1. 把所有模块的代码放入到函数中,用一个数组保存起来
  • 2. 根据require时传入的数组索引,能知道需要那一段代码
  • 3. 从数组中,根据索引取出包含我们代码的函数
  • 4. 执行该函数,传入一个对象module.exports = 'xxx'
  • 5. 我们的代码,按照约定,正好是用module.exports = 'xxx'进行赋值
  • 6. 调用函数结束后,module.exports从原来的空对象,就有了值
  • 7. 最终return module.exports作为require函数的返回值

三. webpack.config.js文件配置

  • entry 是一个对象,程序的入口

    • key: 随意写
    • value: 入口文件
  • output 是一个对象,产出的资源
    • key: filename
    • value: 生成的build.js
  • module 模块(对象)
    • loaders: []

      • 存在一些loader | {test:正则,loader:'style-loader!css-loader'}

四. 处理less

  • loader:'style-loader!css-loader!less-loader'

五. 处理ES6

  • babel-loader+babel-preset-env(es2015/2016/2017)

六. 处理文件+base64

  • url-loader 可以将文件生成为base64编码到build.js中
  • 文件在base64加密后会比原来大三分之一
  • 应用场景是比较小的图片,4kb以内的图片

七. 字符串内使用内置变量

  • name:[name].[ext]
  • name是获取原文件名,ext是获取原文件名的后缀
  • output:{path:'绝对路径',设置产出的资源目录,filename:'build.js'}

八. 处理html

html-webpack-plugin

  • 1.下载
  • 2.在webpack.config.js文件中引入
  • 3.plugins属性,配置该对象
  • 4.给其options设置template(参照物)

九. 单文件方式

  • 依赖 vue-loader
  • vue-template-compiler

十. webpack-dev-server

  • --open 自动打开浏览器
  • --hot 热替换,不在刷新的情况下替换,css样式
  • --inline 自动刷新
  • --port 9999 制定端口
  • --process 显示编译进度

四. 包的分类管理和分类恢复

  • 1. 安装包的时候,做一个分类管理

    • 开发依赖(打包相关webpack) npm i 包名 -D ->devDependencies
    • 生产依赖(不包含webpack打包依赖)npm i 包名 -D -> dependencies
  • 2. 恢复依赖
    • 如果包文件不小心删了/少了
    • 开发恢复 npm i
    • 生产恢复 npm i --production

最新文章

  1. Atitit  数据库的事件机制--触发器与定时任务attilax总结
  2. C语言 第七章 数组与字符串
  3. 行程编码(atoi函数)
  4. WaitForTargetFPS
  5. CSS/CSS3长度、时间、频率、角度单位大全
  6. 多线程操作UI界面的示例 - 更新进度条
  7. YY的困境:除了终止私有化 还有更多的担忧
  8. Hadoop基础
  9. Android Application Fundamentals——Android应用程序基础知识
  10. 06jQuery-03-选择器查找和过滤
  11. CAN通信帧ID如何设定?
  12. 51nod97B 异或约束和
  13. Linux shell 批量运行jmeter脚本
  14. Python中数字之间的进制转换
  15. jquery终止函数
  16. MyBatis 学习资料
  17. centos7.2下安装python3.6.2
  18. Hadoop生态圈-Flume的主流source源配置
  19. 疯狂java——第一章 java语言概述与开发环境
  20. CAAnimation保持动画结束时的效果

热门文章

  1. HaProxy 负载均衡集群
  2. 「SDOI2016」储能表(数位dp)
  3. Servlet案例7:jsp技术及案例
  4. OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 1.操作系统环境配置
  5. Shell - 文本处理
  6. Testing - 软件测试知识梳理 - 测试模型
  7. JAVA中byte为负数处理
  8. 项目- Vue全家桶实战去哪网App
  9. 【LeetCode】14. 最长公共前缀
  10. Java并发编程笔记之ArrayBlockingQueue源码分析