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 ...
随机推荐
- Burpsuite常用模块详解以及渗透测试上的运用
0x00前言 哪有什么前言,大家好,我是浅安.QQ:320229344... 0x01 JDK的安装,以及Burpsuite的成功开启. burpsuite基于JAVA环境才能正常运行的.所以要先安装 ...
- Filesystem Case-Sensitivity Mismatch
Filesystem Case-Sensitivity Mismatch The project seems to be located on a case-sensitive file system ...
- Baidu WebUploader 前端文件上传组件的使用
简介 WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流I ...
- harbor镜像仓库-02-https访问配置
harbor镜像仓库-02-https访问配置 harbordockerhttps harbor搭建部署参考上一章节 harbor镜像仓库-01-搭建部署 Harbor默认使用http,给harbor ...
- 一个简单的C语言题背后的故事
最近看到了一个C语言问题,是要计算出这个函数的输出: #include <stdio.h> int Test(int x,int y, int z){ printf("x,y,z ...
- python中两种栈实现方式的性能对比
在计算机的世界中,同一个问题,使用不同的数据结构和算法实现,所使用的资源有很大差别 为了方便量化python中算法的资源消耗,对性能做测试非常有必要,这里针对stack做了python语言 下的性能分 ...
- 记Booking.com iOS开发岗位线上笔试
今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下. 关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题. 测试之前我很紧张,因为 ...
- 内存管理-slab[代码]
主要介绍kmalloc和kfree代码流程,侧重kmalloc和kfree流程中锁使用规则,会引用到cpuset,mempolicy(内存策略),numa相关知识.如果读起来比较困难可以参考另一篇随笔 ...
- java 浅谈web系统当中的cookie和session会话机制
一 Cookie: 1. Cookie翻译为小甜饼,有一种特殊的味道.cookie主要用来在(浏览器)客户端做记号用的.Cookie不属于java,Cookie是一种通用的机制,属于HTTP协议的一部 ...
- oracle生成AWR报告方法
2018-04-02 19:59:42 在10g 11g中AWR自动的每隔一小时进行一次数据采集并生成快照.下面是生成AWR报告的步骤: 1:使用oracle用户在数据库服务器上执行如下命令 sqlp ...