[TOC]
# 介绍
webpack是一个现代的JavaScript应用模块打包器(module bundler),它能把各种资源,例如JS(含JSX)、coffee、样式(less/sass)、图片等都作为模块来处理和使用。它有着难以置信的配置和神奇的效果,大大提高了我们程序员的工作效率。举个例子:我们可以直接使用require(xxx)的形式来引入各模块,即使他们可能需要经过编译(比如JSX和sass),但我们无须再上面花费太多心思,webpack有着各种健全的加载器(loader)在默默处理这些事情。它可以部分代替Grunt和gulp的功能
# 安装
~~~
cnpm install webpack -g
~~~
~~~
webpack -h
~~~
我们还可以直接安装到项目的依赖里,也就是写入package.json
~~~
cnpm init
cnpm install webpack --save-dev
~~~
# 配置文件webpack.config.js
按照常规来说,每个项目下都应该配置有webpack.config.js文件,它的作用就如果gulp的gulpfile.js 和Grunt的Gruntfile.js一样,就是一个配置项,告诉webpack它需要作的所有事情和如何去做。所以说webpack.config.js的编写也是我们学习重点。
**重点:什么是入口文件?**模块打包的起点称之为入口起点(entry point)。入口起点告诉webpack从哪里开始,并遵循着依赖关系进行打包。可以将您的应用入口起点认为是根上下文(contextual root)或app第一个启动文件。
# 我们来作一个实例(Hello World!)
* 建立index.html文件
* 建立main.js文件
* 建立webpack.config.js文件
* 安装live-server 并预览程序
index.html
~~~
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<script type="text/javascript" src="bundle.js"></script>
</body>
</html>
~~~
main.js
~~~
document.write("<h1>Hello World</h1>");
~~~
webpack.config.js
~~~
module.exports = {
entry: "./main.js",
output: {
filename: 'bundle.js'
}
};
~~~
然后命令行运行webpack,他就会把那个文件生成出来
~~~
➜ vuejs webpack
Hash: 42a0a6b37cf4567d9ea9
Version: webpack 3.10.0
Time: 53ms
Asset Size Chunks Chunk Names
bundle.js 2.51 kB 0 [emitted] main
[0] ./main.js 38 bytes {0} [built]
~~~
- HTML
- 标签
- 超链接
- 列表
- 表格和表单
- h5新增标签
- 快捷方式
- 标签包含
- CSS
- 选择器
- 行内,块元素,链接
- css三大特性
- 盒子模型
- 定位
- css可见性
- emment书写
- 文本元素
- 外观属性
- 背景
- 浮动
- ps
- 用户界面样式
- 显示和隐藏
- 过渡
- 2D,3D变形
- 动画animation
- 伸缩布局(CSS3)
- BFC
- 优雅降级和渐进增强
- 3D旋转
- 双飞翼和圣杯
- JS基础
- 输出消息的几种方式
- 数据类型
- Date对象
- Math对象
- Array对象
- 字符串常用方法
- 数据类型转换
- 等号运算
- 代码调试
- 数组
- 函数
- WebAPI
- webapi简介
- 获取页面元素
- 事件
- 属性操作
- 创建元素
- 节点操作
- 事件详解
- BOM
- 位置相关属性
- 拖拽弹窗
- 弹出层加遮罩
- ES6
- let和const
- 解构表达式变化
- 函数优化
- map和reduce
- nrm
- npm
- npm基础
- package.json
- 淘宝镜像
- webpack
- 介绍
- 多入口文件(Multiple entry files)
- Webpack CSS loader加载器
- webpack Image loader 加载图片
- uglify-js压缩打包JS
- webpack构建本地服务器
- vue内部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定义指令
- vue.extend构造器的延伸
- vue.set全局操作
- Vue的生命周期(钩子函数)
- Template 制作模版
- Component 初识组件
- Component 组件props 属性设置
- Component 父子组件关系
- Component 标签
- vue选项
- propsData Option全局扩展数据传递
- computed Option 计算选项
- Methods Option 方法选项
- watch选项监控数据
- Mixins 混入选项操作
- Extends Option 扩展选项
- delimiters 选项
- vue实例和内置组件
- 实例属性
- 实例方法
- 实例事件
- 内置组件 -slot
- vue-cli
- vue-cli介绍
- 项目目录结构
- vue-cli模板
- vue-router
- 简介
- 配置子路由
- 参数传递
- 单页面多路由区域操作
- url传递参数
- vscode