webpack 4.X版本的簡單使用(處理js/css/less/scss/url(圖片)/字體文件)

  1. 創建一個工程目錄,在該目錄下創建dist和src兩個目錄,並在src中創建一個index.js文件(其他目錄隨意)
    在這裏插入圖片描述
  2. 在dos窗口進入該工程目錄,安裝webpack和webpack-cli(需要先安裝npm,nodejs)
  • 方法一:全局安裝
npm install -g webpack 
npm install -g webpack-cli
  • 方法二:在工程目錄中安裝
npm install --save-dev webpack
npm install --save-dev webpack-cli
  1. 初始化 npm init -y 初始化成功後會出現一個package.json文件

  2. 下載jQuery npm install jquery -S
    在這裏插入圖片描述

  3. 編寫文件
    index.html:

<body>
    <ul>
        <li>第1個</li>
        <li>第2個</li>
        <li>第3個</li>
        <li>第4個</li>
        <li>第5個</li>
    </ul>
</body>

index.js
//導入jQuery

import $ from 'jquery'

$(function(){
    $('li:odd').css('backgroundColor', 'lightblue')
})
  1. 打包編譯index.js文件 webpack --mode development
    在這裏插入圖片描述
    注:使用該默認方法打包js文件,需保證文件名爲index.js且在src目錄下,打包成功後默認生成dist目錄下的main.js文件
  • 非默認:
  1. 在項目根目錄下創建webpack.config.js文件並進行如下配置
const path = require("path")
module.exports = {
    entry: {
        app:"./index.js"
    },
    output: {
        publicPath:__dirname + "/dist",
        path:path.resolve(__dirname, "dist"),
        filename:"bundle.js"
    }
} 

或:

entry:path.join(__dirname, './src/main.js'),
output:{
path: path.join(__dirname, './dist'),
filename: 'bundle.js'
}
  1. 執行 webpack --mode development
    在這裏插入圖片描述

使用webpack-dev-server實現自動打包編譯

  1. npm i webpack-dev-server -D (i -D 是 install --save-dev 的簡寫)
    注:想要webpack-dev-server能夠正常運行,本地項目必須安裝webpack

  2. 在package.json文件下的dev中添加 -webpack-dev-server
    在這裏插入圖片描述
    執行npm run dev打包編譯成功但是並未退出打包狀態,在該狀態下若index.js文件被改變,則會自動打包編譯生成新的bundle.js文件
    在這裏插入圖片描述
    注:使用Ctrl + C退出

**

Webpack處理CSS樣式表

**

  1. 在項目中安裝 style-loader 和 css-loader
npm i style-loader css-loader -D
  1. 在webpack.config.js文件的module.exports中新建一個module節點(請看上面的非默認打包的配置)
module: {//用於配置所有第三方模塊加載器
    rules:[//第三方模塊加載器的規則
        //處理.css文件的第三方loader規則,後面的loader先處理
        {test:/\.css$/, use: ['style-loader', 'css-loader']}
    ]
}

處理less文件

  1. 安裝less-loader :npm i less-loader -D
    需要安裝less依賴:npm i less -D
  2. 在webpack.config.js中配置
//處理.less文件的第三方loader規則
{test:/\.less$/, use: ['style-loader', 'css-loader', 'less-loader']}

處理scss文件

  1. 安裝 sass-loader :npm i sass-loader -D
    需要安裝 node-sass 依賴:npm i node-sass -D(可能用npm安裝不了,需要使用cnpm)
  2. 在webpack.config.js中配置
//處理.scss文件的第三方loader規則
{test:/\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader']}

處理URL(圖片)

  1. 安裝url-loader(需要依賴file-loader)
  npm i url-loader file-loader -D
  1. 在webpack.config.js中配置
//處理圖片路徑的loader
{test:/\.(jpg|jpeg|png|pneg|gif|bmp)$/, use: 'url-loader'}

處理bootstrap圖標

  1. 下載boostrap(3.X版):npm i [email protected] -D
  2. 在index.js中引入
import 'bootstrap/dist/css/bootstrap.css'
  1. 在webpack.config.js中配置
//處理字體文件
{test:/\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader'}
  1. 在html中調用(官網:https://v3.bootcss.com/components/)
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>

4.x版(https://useiconic.com/open):

  1. 下載:npm i [email protected] -D
    由於4.x版本icon文件分離出去所以還需要下載open-iconic:
    npm i https://github.com/iconic/open-iconic.git -D(下載可能有點慢,要花個幾分鐘,可用cnpm下載)
  2. 在index.js中引入
    在3.x的基礎上引入
import 'open-iconic/font/css/open-iconic-bootstrap.css'
  1. 在webpack.config.js中配置
//處理字體文件,在3.x的基礎上多了一個otf
{test:/\.(ttf|eot|svg|woff|woff2|otf)$/, use: 'url-loader'}
  1. 在html中引用
<span class="oi oi-account-login"></span>

注:可在上邊的網站中找到使用方法,如圖,由於導入的Bootstrap Font的CSS文件所以只有第四種方式是可用的,每一種方式引用的文件不一樣,請配套使用
在這裏插入圖片描述

整個項目代碼

https://gitee.com/hyt_ao/webpack-project

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章