從零開始配置一個簡單的webpack打包


一、基礎配置

1.創建一個名為demo-webpack的文件夾(名稱隨意)

2.初始化一個package.json文件

//在cmd窗口中使用以下命令快速創建
npm init -y

3.安裝webpackwebpack-cli到開發依賴下

npm i webpack -D
npm i webpack-cli -D

4.配置package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
+    "build": "webpack"
},

5.創建入口文件src/index.js

6.運行npm run build命令測試打包是否正常
打包后將會自動創建dist/main.js文件,也就是默認的出口文件
(到這一步為止,目前的目錄結構)

├─dist
  └─main.js
├─node_modules
├─src
  └─index.js
├─package.json
└─package-lock.json

7.配置打包模式
在第6步的時候,你將會看到如下的警告:

這是因為我們還沒有設置打包的模式,所以webpack默認以生產(production)模式完成打包

  • 開始配置

    需要在根目錄下創建webpack默認配置文件webpack.config.js

  // 內容如下:打包模式分為兩種development(開發模式打包)  production生產模式打包
  const config = {
      mode: "development"
  }
  // 這里可以直接導出上面的對象,但是使用變量保存可以使代碼更美觀
  module.exports = config

配置完以上內容后再運行npm run build就會發現先前的警告信息消失了。

8.配置入口文件和出口文件

  • 默認的出口文件為dist/main.js

  • 默認的入口文件為src/index.js

  • 依舊是在webpack.config.js中配置

+ // 引入path模塊處理路徑問題
+ const path = require('path')

const config = {
    mode: "development",
+    entry: "./src/index.js",
+    output: {
+        path: path.join(__dirname, './dist'),
+        filename: "main.js"
+    }
}

module.exports = config

二、loader配置

通過以上的步驟就已經搭建了一個簡單的webpack架子,然后讓我們添加一個css文件來測試下打包

  • 先在根目錄下新建一個index.html,然后再新建一個src/styles/index.css文件
  • 內容如下

①在index.html中添加一些簡單的結構

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <script src="./dist/main.js"></script>
</body>

</html>

②在src/styles/index.css添加一些簡單的樣式

body {
    background-color: pink;
}

③在index.js中引入css文件

import './styles/index.css'

④最后,運行npm run build打包,並得到如下報錯信息

報錯部分明確的告訴你'You may need an appropriate loader to handle this file type'

翻譯過來大致就是:你或許需要一個適當的加載器來處理這個類型的文件

所以接下來我們需要下載用於解析CSS文件的loader

  • 直接使用如下命令安裝style-loadercss-loader
npm i style-loader css-loader -D
  • 然后在webpack.config.js中添加如下配置
const config = {
    mode: "development",
    entry: "./src/index.js",
    output: {
        path: path.join(__dirname, './dist'),
        filename: "main.js"
    },
+    module: {
+        rules: [
+            {
+                test: /\.css$/,
+                use: [
+                    'style-loader',
+                    'css-loader'
+                ]
+            }
+        ]
+    }
}
  • 最后運行npm run build就可以打開根目錄下的index.html文件預覽一番了

什么?你說頁面有點丑? 那告訴你怎么打包一個優美的圖片好了

  • 操作如下:

    ①在src/assets文件夾下放入一張優美的圖,這里放入的是pretty.png

    ②在index.htmlbody中添加如下代碼

    <div id="app">
        <img id="img" src="nothing.png" alt="">
    </div>
    

    ③在src/index.js中導入這張圖片並動態設置給img標簽

  import pic from './assets/pretty.png'
  
  const img = document.getElementById('img')
  img.src = './dist/' + pic;

④運行npm run build打包,並得到如下報錯

同樣,這里需要配置對應的加載器來加載圖片文件。

所以還是老套路,先下載加載器,然后在webpack中配置一下

①安裝file-loader加載器

npm i file-loader -D

②在webpack.config.js中添加配置

module: {
    rules: [
        {
            test: /\.css$/,
            use: [
                'style-loader',
                'css-loader'
            ]
        },
+        {
+            test: /\.png$/,
+            use: [
+                'file-loader'
+            ]
+        }
    ]
}

③運行npm run build就可以看到優美的圖片了

PS:

  • 如果這里你用的不是.png后綴的圖片的話,需要在上面正則匹配(test: /\.png$/)中修改一下哈
  • 因為webpack最初是用於打包js文件的,所以如果想要打包其它類型的文件都需要配置對應的loader
  • 配置的方法和上面講述的都大同小異,加載器在webpack官方也都有列出不少
  • 地址:https://www.webpackjs.com/loaders/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM