vue.js及项目实战[笔记]— 05 WebPack
一. 历史介绍
1. 规范
- AMD
- Commonjs||CMD
- UMD
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: filenamevalue: 生成的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
- 开发依赖(打包相关webpack)
- 2. 恢复依赖
- 如果包文件不小心删了/少了
- 开发恢复
npm i - 生产恢复
npm i --production
vue.js及项目实战[笔记]— 05 WebPack的更多相关文章
- vue.js及项目实战[笔记]— 03 vue.js插件
一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...
- vue.js及项目实战[笔记]— 01 vue.js
一. vue基础 1. 历史介绍 angular 09年,年份较早,一开始大家是拒绝的 react 2013年,用户体验较好,直接拉到一堆粉丝 vue 2014年,用户体验较好 前端框架与库的区别 j ...
- vue.js及项目实战[笔记]— 02 vue.js基础
一. 基础 1. 注册全局组件 应用场景:多出使用的公共性能组件,就可以注册成全局组件,减少冗余代码 全局APIVue.component('组件名','组件对象') 2.附加功能:过滤器&监 ...
- vue.js及项目实战[笔记]— 04 axios
一. axios 1. 基本使用 axios.method('url',[,...data],options) .then(function(res){ }) .catch(function(err) ...
- vue.js的项目实战
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由蔡述雄发表于云+社区专栏 需求背景 组件库是做UI和前端日常需求中经常用到的,把一个按钮,导航,列表之类的元素封装起来,方便日常使用, ...
- vue.js+koa2项目实战(一)创建项目和elementUI配置
前端采用vuex+element-ui: 后端采用koa2+restfulAPI+sequlize: (一)项目介绍 宠物社区 1.社区 2.好友 3.说说 4.宠粮 5.健康 (二)项目框架 1.V ...
- vue.js学习与实战笔记(1)
公司需要开发一个小型官网,个人决定放弃angular2,使用vue来进行开发,由于是培训出生,思想一时难以转变,所以只能从零开始,下面奉上学习笔记 vue.js主要参考官网进行学习与开发 由于vue不 ...
- vue.js+koa2项目实战(三)登录注册模态框
登录注册模态框 注: [Vue warn]: Do not use built-in or reserved HTML elements as component id: diaLog 原因:diaL ...
- vue.js+koa2项目实战(五)axios 及 vue2.0 子组件和父组件之间的传值
axios 用法: 1.安装 npm install axios --save-dev 2.导入 import axios from 'axios'; 3.使用 axios.post(url,para ...
随机推荐
- cad2008 参照面板 在位编辑后无法使用
有时候在位编辑之后,保存在位编辑了,可是参照面板无法动了,这个时候只要保存一下,然后ctrl+z,就可以解决了..蛮神奇的,我还没想到如何用代码去搞定它..
- VMware Tools安装教程
安装依赖: sudo yum install eject 步骤: 确保 Linux 虚拟机已打开电源. 如果正在运行 GUI 界面,请打开命令 shell. 注意:以 root 用户身份登录,或使用 ...
- JS禁用键盘浏览器退格键
我们在真实的项目开发中经常会使用JS 对键盘上的一些按键进行禁用,常见的比如说退格键(backspace/ 后退键),我在一个项目中就遇到过在页面编辑的时候禁用掉退格键,因为退格键会发生页面后退,这样 ...
- Java 大数值类型执行精确计算
简介 如果基本的整数和浮点数精度不能够满足需求,那么可以使用 java.math 包下两个很有用的类:BigInteger 和 BigDecimal.这两个类可以处理包含任意长度数字序列的数值,Big ...
- 理解js中的函数调用和this
概述 这是我看typescript的时候看引用资源看到的,原文在这里:Understanding JavaScript Function Invocation and "this" ...
- Servlet案例7:jsp技术及案例
jsp运行原理: 根据jsp文件创建java文件(servlet),并编译运行 第一次访问时会被翻译成servlet后执行 jsp三个指令: 1.page指令:页面翻译运行的属性的配置(通常使用默认) ...
- OpenStack-Ocata版+CentOS7.6 云平台环境搭建 — 5.在控制节点上部署计算服务Nova
计算服务Nova使用OpenStack Compute来托管和管理云计算系统. OpenStack Compute是基础架构即服务(IaaS)系统的主要部分. 主要模块用Python实现.OpenSt ...
- MySQL:change buffer
1. 概念 Innodb维护了一个缓存区域叫做Buffer Pool,用来缓存数据和索引在内存中.其大小通过参数 innodb_buffer_pool_size 控制: change buffer 是 ...
- Linux - 执行命令与脚本
001 - Linux执行多条命令 方法1:在命令行下可以一次性粘贴多条语句,shell会依次执行并输出结果 方法2:在一个命令行中,用分号将各个命令隔开或者使用&&连接各个命令 示例 ...
- LeetCode: 102_Binary Tree Level Order Traversal | 二叉树自顶向下的层次遍历 | Easy
题目:Binay Tree Level Order Traversal Given a binary tree, return the level order traversal of its nod ...