webpack基本配置

2021-10-04 23:43:30 字數 3446 閱讀 8031

demo及筆記:

# 前端構建工具webpack的學習

## 什麼是webpack?

## webpack可以做什麼?

1. 優化:刪除多餘的冗餘**,壓縮;

2. 轉換:jsx,es6,es6的語法轉換,less,sass等預編譯處理器的轉換;

3. 打包:合併多餘檔案,減少請求次數,加快響應;

4. devserver**解決跨域問題。

5. ......

## 目標

1. 通過webpack完成對公司現有專案從0開始的定製化搭建;

2. 摒棄現在腳手架中冗餘的**及配置;

3. 了解wbpack的一些原理,流程。

## 結構

```js

module.exports = , // 載入轉換=》less || sass || || j'sx || es6 || es7

plugins: , // 外掛程式

devserver: {}, // 服務**

resolve: {}, // 特殊問題的解決方案 }

```## 基本配置與命令列操作

### 命令列操作

安裝:```

npm i webpack webpack -cli -g

```webpack:webpack的核心模組

```

webpack -v 檢視當前webpack的版本號

webpack --mode development/production 指定webpack的執行模式為開發模式/生產模式,預設是生產模式

webpack --config filename 指定webpack命令依賴的配置檔案,預設是webpack.config.js檔案

webpack src/main.js --output filename 指定輸出檔案為filename,預設輸出檔案為dist/main.js

```###基本配置

1. 在專案根目錄執行npm init -y生成package.json檔案

2. 在scripts物件中新增命令

```"scripts":

```3. 執行npm run build命令時,就相當於執行了webpack src/main.js --mode development命令

## 屬性詳解

### entry

```js

module.exports = ,

output: , }

```### output

```js

module.exports =

output: }

```### plugins

webpack依賴於node.js。因此引入依賴模組時需要使用node.js的模組匯入

####clean-webpack-plugin

> 可以實現在打包時,清空原有的內容,該外掛程式每次迭代使用方法差距較大需要關注官方文件

>

####html-webpack-plugin

> 缺省會在dist檔案下生成乙個html檔案並引入打包好的js檔案,詳細功能見demo

>

#### extrace-text-webpack-plugin

> 拆分打包後的css檔案到單獨的css資料夾,而不是載入到html的style中

>

### module

各個模組的載入轉換預編譯處理器=》css,es6抓換成es5等。

####css

```js

// npm install style-loader css-loader -d

module: ) // 拆分打包後的css檔案 需在外掛程式中註冊 },

] },

```####less

```js

// npm install style-loader css-loader less less-loader -d

module: ) // 拆分打包後的css檔案 需在外掛程式中註冊 },

] },

```####sass

```js

// npm install style-loader css-loader sass-loader node-sass -d

module: ) // 拆分打包後的css檔案 需在外掛程式中註冊 },

] },

```#### image

```js

// npm i url-loader file-loader -d

module: }

] },

] },

```#### jsx|es6|es7|es8|es9...

```js

// npm install babel-loader babel-core babel-preset-react babel-preset-env -d

module: }

] },

resolve: ,

``` 注:

1. 之所以要配置這些東西,是為了支援在js中引入這些css/img靜態資源檔案,並將這些資源打包載入。

2. 需要注意的是loader:["stye-loader","css-loader"],這兩個必須在開始且順序不能亂,因為他的執行是從右開始執行,比如說less轉換成css=》載入到style=》extract拆分到單獨的路徑。

### devserver

設定webpack的服務模組,可設定服務**,解決跨域問題

```js

module.exports = }

}}, }

```##demo

```js

const = require('clean-webpack-plugin');

const htmlwebpackplugin = require('html-webpack-plugin');

const extracttextplugin = require("extract-text-webpack-plugin");

module.exports =

plugins: [

new cleanwebpackplugin(),

new htmlwebpackplugin(, // 壓縮的一些設定

}),new extracttextplugin("css/styles.css"), // 指定分離後的css檔案路徑 需要配合module下rules下extracttextplugin.extract({})來使用 ],

module: ) },

) },

) },

} ] },

} ]},

module: ) },

) },

) },

} ] },

} ]},

resolve: ,

devserver: }

}}, }

```

webpack基本配置

1 context context path.resolve dirname,js 配合entry,含義是從當前專案目錄下的js檔案下查詢入口檔案基本目錄,絕對路徑,用於從配置中解析入口起點和載入器。2 entry entry js main.js 應用程式的起點入口,從這個起點開始,應用程式啟動執...

webpack基本配置

一 新建專案 二 包管理管理專案 npm init y 當建立的專案根目錄名稱是中文或者包含中文,就不能使用 y 命令 直接使用 npm init 之後會讓你手寫專案名稱 keywords author license isc 生成了 package.json 檔案,該檔案集中管理了專案中所用到的包...

基本的webpack配置

全域性安裝npm install webpack g本地安裝npm install webpack webpack cli webpack dev server d建立webpack.config.js檔案 在package.json的scripts中新增以下 如果webpack.config.js...