一. 历史介绍

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

vue.js及项目实战[笔记]— 05 WebPack的更多相关文章

  1. vue.js及项目实战[笔记]— 03 vue.js插件

    一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...

  2. vue.js及项目实战[笔记]— 01 vue.js

    一. vue基础 1. 历史介绍 angular 09年,年份较早,一开始大家是拒绝的 react 2013年,用户体验较好,直接拉到一堆粉丝 vue 2014年,用户体验较好 前端框架与库的区别 j ...

  3. vue.js及项目实战[笔记]— 02 vue.js基础

    一. 基础 1. 注册全局组件 应用场景:多出使用的公共性能组件,就可以注册成全局组件,减少冗余代码 全局APIVue.component('组件名','组件对象') 2.附加功能:过滤器&监 ...

  4. vue.js及项目实战[笔记]— 04 axios

    一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...

  5. vue.js的项目实战

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由蔡述雄发表于云+社区专栏 需求背景 组件库是做UI和前端日常需求中经常用到的,把一个按钮,导航,列表之类的元素封装起来,方便日常使用, ...

  6. vue.js+koa2项目实战(一)创建项目和elementUI配置

    前端采用vuex+element-ui: 后端采用koa2+restfulAPI+sequlize: (一)项目介绍 宠物社区 1.社区 2.好友 3.说说 4.宠粮 5.健康 (二)项目框架 1.V ...

  7. vue.js学习与实战笔记(1)

    公司需要开发一个小型官网,个人决定放弃angular2,使用vue来进行开发,由于是培训出生,思想一时难以转变,所以只能从零开始,下面奉上学习笔记 vue.js主要参考官网进行学习与开发 由于vue不 ...

  8. vue.js+koa2项目实战(三)登录注册模态框

    登录注册模态框 注: [Vue warn]: Do not use built-in or reserved HTML elements as component id: diaLog 原因:diaL ...

  9. vue.js+koa2项目实战(五)axios 及 vue2.0 子组件和父组件之间的传值

    axios 用法: 1.安装 npm install axios --save-dev 2.导入 import axios from 'axios'; 3.使用 axios.post(url,para ...

随机推荐

  1. npm全局目录修改

    转载:http://www.qdfuns.com/notes/30749/0f66fcf5e62eed010f744d0d4adaa870.html 我之前安装npm时全是默认安装,模块全部安装在C盘 ...

  2. ZZNU 2098 Drink coffee(差分+树状数组)

    题目链接:http://acm.hi-54.com/problem.php?pid=2098 2098 : Drink coffee 时间限制:1 Sec 内存限制:256 MiB 提交:32 答案正 ...

  3. jsp页面跳转页面的几中方式(同步更新)

    1. 通过<a>标签跳转网页a) 通过<a>标签直接跳转b) 通过<a>标签调用JavaScript函数,然后再进行跳转 2. 通过表单形式跳转网页a) 通过表单跳 ...

  4. Django -- 部署Django 静态文件不能获取

    # 在部署上下之后无法正常显示后台admin的静态文件 # 因为文件都在django内部,而在nginx中将配置都设置到一个位置: # 措施: 1.在settings.py文件中添加配置; STATI ...

  5. redis cluster集群web管理工具 relumin

    redis cluster集群web管理工具 relumin 下载地址 https://github.com/be-hase/relumin 只支持redis cluster模式 java环境 tar ...

  6. C#对象内部属性排序测试

    构建对象: class SortGrid { int indexI; int indexJ; public SortGrid(int x, int y) { indexI = x; indexJ = ...

  7. Spring Boot + Spring Cloud 构建微服务系统(九):配置中心(Spring Cloud Config)

    技术背景 如今微服务架构盛行,在分布式系统中,项目日益庞大,子项目日益增多,每个项目都散落着各种配置文件,且随着服务的增加而不断增多.此时,往往某一个基础服务信息变更,都会导致一系列服务的更新和重启, ...

  8. iOS开发(1):设置APP的图标与启动图 | iOS图标的尺寸 | LaunchScreen的使用

    每个APP都应该有自己的图标跟启动图. 这里介绍怎么设置iOS的APP的图标跟启动图. (1)图标 小程的xcode是10.0版本,设置图标的入口如下: 点击入口后,进到设置页面,如下: 可以看到有很 ...

  9. 怎么样在windows命令下创建一个没有文件名的文件?

    直接上图 echo ' ' >> .aa //创建一个空字符的 .aa 的文件

  10. HTML5 audio元素如何使用js与jquery控制其事件

    前言: 每一次遇见问题想到的就是怎么解决?最好的方法还是查询网络媒体,更好的办法是让自己记忆,只有自己理解到了才真正是属于自己.要做一个订单提醒功能,没有使用audio相关的插件,虽然插件无数,还是喜 ...