webpack教程(二)
目錄
- 配置css-loader
- 配置less-loader
- 配置url-loader
- 配置壓縮外掛
- 配置html外掛
- 配置dev-server
- 配置熱更新
- 配置跨域
準備工作
- 建立webpackdemo資料夾
- 啟動cmd, 進入webpackdemo目錄,執行npm init初始化package.json
- 建立app.css檔案和app.less檔案
// app.css
body {
background: #EEEEEE;
}
// app.less
.box {
width: 600px;
margin: 10px auto;
img {
width: 600px;
}
p {
text-align: center;
}
}
- 建立入口檔案main.js
require(`./app.css`);
- 建立webpack.config.js
const path = require(`path`);
module.exports = {
entry: `./main.js`,
output: {
path: path.resolve(__dirname, `dist`),
filename: `index.js`
},
mode: `development`
}
- 測試打包是否成功
配置css-loader
- 在webpack.config.js里加上下面的程式碼
module: {
rules: [
{
test:/.css$/,
use: [`style-loader`, `css-loader`]
}
]
}
- 安裝style-loader和css-loader
npm i style-loader css-loader --save-dev
- 在main.js里加上以下程式碼:
require(`./app.css`)
- 執行 webpack 命令
- 檢查配置是否成功
在dist目錄建立index.html,把打包後的index.js檔案進行載入,開啟index.html,若背景是灰色說明成功
配置less-loader
- 在module的rules裡面加上以下程式碼
{
test: /.less$/,
use: [`style-loader`, `css-loader`, `less-loader`]
}
- 安裝less和less-loader
npm i less --save-dev
npm i less-loader --save-dev
- 在main.js加入以下程式碼
require(`./app.less`);
- 檢查配置是否成功
在dist的index.html里加入下面的程式碼
<div class="box">
<p>測試less-loader</p>
<img src="../img.png"/>
</div>
開啟index.html檢查app.less裡的樣式是否生效
配置url-loader
- 在webapck.config.js的module裡的rules物件里加上下面的程式碼
{
test: /.(png|jpg|gif)$/,
use: [{
loader: `url-loader`,
options: {
limit: 8192
}
}]
}
- 安裝file-loader和url-loader
npm i file-loader url-loader --save-dev
- 在main.js里加上下面的程式碼
let img = document.createElement(`img`);
img.src = require(`./img.png`);
document.body.appendChild(img);
- 執行webpack命令,開啟dist裡面的index.html檢視是否增加了一張圖片
配置壓縮外掛和html外掛
- 在webpack配置檔案的開頭加入以下程式碼:
// 生成html的外掛
const htmlWebpackPlugin = require(`html-webpack-plugin`);
// 壓縮的外掛
const uglifyjsWebpackPlugin = require(`uglifyjs-webpack-plugin`);
在module後面新增以下程式碼:
plugins: [
new htmlWebpackPlugin(),
new uglifyjsWebpackPlugin()
]
- 安裝htmlWebpackPlugin和uglifyjsWebpackPlugin外掛,同時還需要區域性安裝webpack
npm i webpack html-webpack-plugin uglifyjs-webpack-plugin --save-dev
- 執行打包命令 webpack,開啟dist裡面的index.html和index.js檢查配置是否成功
配置dev-server
- 在webpack配置檔案加上以下程式碼
devServer: {
contentBase: path.join(__dirname, "dist"),
compress: true,
port: 9000
}
- 安裝webpack-dev-server 和webpack-cli
npm i webpack-dev-server webpack-cli --save-dev
- 在package.json的scripts裡面加上下面這一句
"dev": "webpack-dev-server --open --oneline"
- 執行npm run dev 檢查配置是否成功
配置熱模組替換(熱更新)
- 在webpack配置檔案的開頭加上
const webpack = require(`webpack`);
在plugins里加上
new webpack.HotModuleReplacementPlugin()
``
在devServer加上
hot: true
2. 執行npm run dev檢查控制檯是否有列印以下資訊
[WDS] Hot Module Replacement enabled.
有則表示熱更新已開啟
#### 配置webpack跨域
1. 在webpack的devServer物件里加上
proxy: {
`/v4`: {
target: `https://m.maizuo.com`,
// 允許跨域
changeOrigin: true,
pathRewrite: {
`^/v4`: `/v4`
}
}
}
2. 在main.js里加上
// 測試跨域請求
const $ = require(`jquery`);
let url = `/v4/api/film/now-playing?__t=1535683702386&page=1&count=5`;
$.ajax({
type:”get”,
url,
success: (res)=> {
console.log(res)
},
error: ()=> {
alert(`請求失敗`);
}
});
3. 安裝jquery
npm i jquery –save-dev
4. 執行npm run dev
看是否拿到了伺服器的資料
相關文章
- Webpack4系列教程(二) HTML相關配置WebHTML
- webpack4 系列教程(二): 編譯 ES6Web編譯
- webpack教程(一)Web
- Webpack 入門教程Web
- webpack4系列教程(一):初識webpackWeb
- 初識 webpack (二)Web
- webpack執行Babel教程WebBabel
- Webpack4系列教程 --- 前言Web
- webpack4 系列教程: 前言Web
- [ webpack4 ] 配置屬於自己的打包系統教程(二)—— 資源配置篇Web
- 讀 VuePress(二):使用 Webpack-chain 鏈式生成 webpack 配置VueWebAI
- webpack4 系列教程(一): 打包JSWebJS
- webpack安裝教程windows下、mac下WebWindowsMac
- webpack4系列教程(十):總結Web
- webpack入門學習手記(二)Web
- webpack學習(二)初識打包配置Web
- Seastar 教程(二)AST
- 新手入門,webpack入門詳細教程Web
- [翻譯]阮一峰webpack教程(Demo集合)Web
- webpack4構建vue專案(二)WebVue
- vue+webpack 從入門到精通(二)VueWeb
- webpack4 系列教程(十四):Clean Plugin and Watch ModeWebPlugin
- Webpack4系列教程(一) 基礎入門Web
- Webpack4系列教程(三) JS相關配置WebJS
- Webpack4系列教程(四) CSS相關配置WebCSS
- 淺析html webpack plugin外掛的使用教程HTMLWebPlugin
- 如何利用webpack來提升前端開發效率(二)?Web前端
- web前端進階篇(二) 瀏覽器 WebpackWeb前端瀏覽器
- 9102年webpack4搭建vue專案(二)WebVue
- webpack4入門學習筆記(二)Web筆記
- webpack4.0打包優化策略(二)Web優化
- Webpack的基本配置和打包與介紹(二)Web
- 從零學腳手架(二)---初識webpackWeb
- webpack4 系列教程(十一):字型檔案處理Web
- Webpack4系列教程(五) 圖片相關配置Web
- .NET 事件模型教程(二)事件模型
- Kotlin教程(二)函式Kotlin函式
- webpack4 系列教程(十三):自動生成HTML檔案WebHTML