-
瞭解Webpack相關
-
什麼是webpack
-
Webpack是一個模組打包器(bundler)。
-
在Webpack看來, 前端的所有資原始檔(js/css/img/less/…)都會作為模組處理
-
它將根據模組的依賴關係進行靜態分析,生成對應的靜態資源
-
-
理解Loader
-
Webpack 本身只能載入JS模組,如果要載入其他型別的檔案(模組),就需要使用對應的loader 進行轉換/載入
-
Loader 本身也是執行在 node.js 環境中的 JavaScript 模組
-
它本身是一個函式,接受原始檔作為引數,返回轉換的結果
-
loader 一般以 xxx-loader 的方式命名,xxx 代表了這個 loader 要做的轉換功能,比如 json-loader。
-
-
配置檔案(預設)
-
webpack.config.js : 是一個node模組,返回一個 json 格式的配置資訊物件
-
-
外掛
-
外掛件可以完成一些loader不能完成的功能。
-
外掛的使用一般是在 webpack 的配置資訊 plugins 選項中指定。
-
Webpack 本身內建了一些常用的外掛,還可以通過 npm 安裝第三方外掛
-
-
-
學習文件 :
-
webpack官方入門: http://webpack.github.io/docs…
-
Webpack中文指南: http://zhaoda.net/webpack-han…
-
-
你將學到:
-
How to install webpack
-
How to use webpack
-
How to use loaders
-
How to use the development server
-
How to use image
-
-
初始化專案: package.json
{ "name": "webpack_test", "version": "1.0.0" }
-
安裝webpack
npm install webpack@1 -g //全域性安裝 npm install webpack@1 --save-dev //區域性安裝
-
開始編譯
-
建立入口src/js/ : entry.js
document.write("entry.js is work");
-
建立主頁面 build/: index.html
<script type="text/javascript" src="js/build.js"></script>
-
編譯js
webpack src/js/entry.js build/js/build.js
-
檢視頁面效果
-
-
第二個js
-
建立第二個js: src/js/content.js
module.exports = " <br> It works from content.js";
-
更新入口js : entry.js
* document.write("entry.js is works."); * document.write(require("./content.js"));
-
編譯js:
webpack src/js/entry.js build/js/build.js
-
檢視頁面效果
-
-
第一個載入器(loader)
-
安裝樣式的loader
npm install css-loader style-loader --save-dev
-
建立樣式檔案: src/css/test.css
body { background: red; }
-
更新入口js : entry.js
+ require("style-loader!css-loader!../css/test.css"); * document.write("entry.js is works."); * document.write(require("./content.js"));
-
編譯js, 並檢視頁面效果
webpack src/js/entry.js build/js/bundle.js
-
-
繫結載入器
-
更新入口js : entry.js
- require("style-loader!css-loader!./test.css"); + require("./test.css");
-
編譯:
webpack src/js/entry.js build/js/bundle.js --module-bind css=style-loader!css-loader
-
檢視頁面效果
-
-
使用webpack配置檔案
-
建立webpack.config.js
module.exports = { entry: "./src/js/entry.js",//入口路徑配置 output: {//出口配置 path: __dirname + `/build/js`,//輸出路徑 filename: "bundle.js"//輸出檔名 }, module: { loaders: [//模組載入器配置 { test: /.css$/, loader: "style!css"} //所有css檔案宣告使用css-loader和style-loader載入器 ] } };
-
編譯
webpack webpack --progress //編譯顯示進度
-
問題—每次修改模組檔案內容的重新手動打包,重新整理
-
自動編譯
webpack --watch //編譯並啟動監視(但需要重新整理瀏覽器)
-
瀏覽器自動重新整理(熱載入)—-解決手動重新整理瀏覽器問題
npm install webpack-dev-server@1 -g webpack-dev-server 訪問: http://localhost:8080/webpack-dev-server/ ; http://localhost:8080 !!!發現問題----訪問的是資料夾路徑而不是頁面 devServer:{ contentBase: `./build`,//內建伺服器動態載入頁面所在的目錄 historyApiFallback:true,//不跳轉 inline:true } contentBase : 預設webpack-dev-server為根資料夾提供內建的服務,如果其他目錄下的檔案 提供服務需要在此設定目錄(我們設定為build資料夾) historyApiFallback : 開發單頁面的時候非常有用,它依賴於H5的 history API,當 設定為true的時候所有的跳轉都指向index.html; port:可以設定埠號,不設定時候預設為 8080 inline : 設定為true的時候回自動重新整理(有的版本需要配合hot : true使用) webpack-dev-server 訪問: http://localhost:8080 問題:頁面沒有熱載入,自動重新整理,因為index的src引入的硬碟中的build檔案而不是webpack-dev-server伺服器記憶體中的build 特點: 自動編譯並重新整理介面 不生成編譯後的檔案, 直接在記憶體中編譯處理, 並啟動伺服器執行專案
-
-
載入圖片
-
安裝依賴的loader
npm install url-loader file-loader --save-dev url-loader比file-loader功能更加完善是對file-loader的上層封裝,但二者需配合使用
-
新增config中loader的配置
{ test: /.(png|jpg)$/, loader: "url-loader?limit=8192" } //如果圖片小於limit就會進行Base64編碼
-
拷入2張圖片:
-
小圖: img/logo.png
-
大圖: img/big.jpg
-
-
定義引用圖片的樣式: test.css
#box1{ background-image: url(../img/logo.jpg); height: 200px; width: 200px; } #box2{ background-image: url(../img/big.jpg); height: 200px; width: 200px; }
-
在頁面引用樣式或圖片: index.html
<div id="box1"></div> <div id="box2"></div>
-
編譯並瀏覽
webpack-dev-server
-
圖片打包問題
1、圖片大於8kb的時候無法打包到js檔案中, 2、index.html引入js的時候發現沒有打包進去的圖片路徑不對 3、解決方法: * //publicPath : `./js/`,//webpack的絕對路徑,設定服務index.html資源的路徑
-
-
配置npm script命令
"scripts": { "start": "webpack-dev-server", "build": "webpack" } npm start: 編譯執行專案 npm build: 編譯打包
Webpack快速入門
相關文章
- webpack 快速入門 系列 —— 效能Web
- webpack 快速入門 系列 —— 初步認識 webpackWeb
- webpack 5.x 快速入門Web
- webpack 快速入門 系列 —— 實戰一Web
- webpack 快速入門 系列 - 自定義 wepack 上Web
- webpack-bundle-analyzer外掛快速入門Web
- Webpack 入門Web
- 入門WebpackWeb
- Webpack 入門教程Web
- webpack 4 入門Web
- webpack 基礎入門 - 瞭解webpackWeb
- 新手入門,webpack入門詳細教程Web
- webpack4入門Web
- 快速排序快速入門排序
- webpack 入門之 loader 案例Web
- webpack4.0入個門Web
- SQL快速入門 ( MySQL快速入門, MySQL參考, MySQL快速回顧 )MySql
- IMGUI快速入門GUI
- 反射快速入門反射
- RxJava快速入門RxJava
- GitHub 快速入門Github
- Halcon快速入門
- 快速入門SRPCRPC
- Redis快速入門Redis
- PHP快速入門PHP
- QT快速入門QT
- 【SpringBoot】快速入門Spring Boot
- Vue快速入門Vue
- spring 快速入門Spring
- makefile快速入門
- Allure快速入門
- SprinMvc快速入門MVC
- Postman快速入門Postman
- mongodb快速入門MongoDB
- mysqlsla快速入門MySql
- Express快速入門Express
- CSS快速入門CSS
- Python快速入門Python