一. 历史介绍

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. [CocoaPods]入门

    什么是CocoaPods? CocoaPods管理Xcode项目的库依赖项. 项目的依赖项在名为Podfile的单个文本文件中指定.CocoaPods将解析库之间的依赖关系,获取生成的源代码,然后在X ...

  2. kubernetes集群搭建(6):kubernetes基本使用演示

    以简单部署访问来演示kubernetes的基本使用 流程: 用户访问client应用,client应用中调用server应用,由于部署了多节点,client在访问server时应该配置server 暴 ...

  3. Eclipse上搭建Spring的开发环境

    一.安装Spring Tool Suite插件 如图: 点击Finish之后等待安装,安装完之后弹窗点击yes重启Eclipse,重启后显示如下界面: 二.搭建Spring开发环境 1.导入jar包到 ...

  4. opus在arm的嵌入式平台上的移植和开发

    最近产品中要用到opus,圣上一声令下,把opus移植到我们平台上,什么?opus?opus是什么?在一脸 茫然中,我这特种兵码农就赤手空拳上战场了. 废话少说,赶紧在网站:https://opus- ...

  5. Xamarin.Android 调用原生的Jar包

    我们有时候会从Android原生开发(Java)转移到Xamarin.Android开发时,需要将过去写好的Android Class Library直接嵌入到Xamarin.Android底下使用, ...

  6. FTP上传心得

    最近出了一个问题就是在本地上传FTP没有一点问题 可是部署到服务器上.上传的时候总是false.解决办法 ftp.enterLocalPassiveMode();boolean storeFile = ...

  7. JVM内存区域划分及垃圾回收

    第一部分.闲扯+概述 近来在研读<深入理解java虚拟机>一书,读完之后做个小结,算是记录一下自己的学习所得,在成长的路上,只能死磕. 要理解JVM,就要先从其内存区域划分开始,知道其由几 ...

  8. Django使用Channels实现WebSocket--上篇

    WebSocket - 开启通往新世界的大门 WebSocket是什么? WebSocket是一种在单个TCP连接上进行全双工通讯的协议.WebSocket允许服务端主动向客户端推送数据.在WebSo ...

  9. SQL 必知必会·笔记<14>更新和删除数据

    1. 更新数据 基本的UPDATE语句,由三部分组成: 要更新的表 列名和它们的新值 确定要更新那些行的过滤条件 更新单列示例: UPDATE Customers SET cust_email = ' ...

  10. Vue + Element UI 实现权限管理系统 前端篇(十一):第三方图标库

    使用第三方图标库 用过Elment的同鞋都知道,Element UI提供的字体图符少之又少,实在是不够用啊,幸好现在有不少丰富的第三方图标库可用,引入也不会很麻烦. Font Awesome Font ...