[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