新建一個空文件夾,如my-webpack
,使用vscode打開該文件夾,執行npm init -y
自動建立package.json
文件。 在終端中執行npm install webpack webpack-cli -D
,安裝webpack
和webpack-cli
。css
entry
用來指定webpack
的打包入口。html
1,單入口文件寫法react
module.exports = {
entry:'./src/index.js'
}
複製代碼
2,多入口寫法webpack
module.exports = {
entry:{
app:'./src/index.js',
search:'./src/search.js'
}
}
複製代碼
output
用來告訴webpack
將打包編譯後的文件輸出到哪裏。 須要引入path
模塊。web
const path = require('path');
module.exports = {
entry:'./src/index.js',
output:{
path:path.join(__dirname,'dist'),
filename:'[name].js'
}
}
複製代碼
mode
用來指定當前的構建環境:development
,production
,none
;同時會設置process.env.Node_env
的值。npm
使用babel-loader
編譯ES6
語法: npm install babel-loader @babel/core -D
。 同時在webpack
配置文件中增長:json
module:{
rules:[
{
test:/\.js$/,
use:'babel-loader'
}
]
}
複製代碼
babel
的配置文件是.babelrc
文件:增長ES6
的babel preset
配置瀏覽器
{
"presets":[
"@babel/preset-env",
"@babel/preset-react"//解析react語法
],
"plugins":[
"@babel/proposal-class-properties"//解析class語法
]
}
複製代碼
css-loader
用於加載.css文件;style-loader
將樣式經過<style>
標籤插入到head
中。bash
先安裝css-loader
和style-loader
: npm install css-loader style-loader -D
babel
在webpack
中添加配置:
module:{
rules:[
{
test:/\.css$/,
use:['style-loader','css-loader']
}
]
}
複製代碼
解析less
文件須要安裝less-loader
:npm install less less-loader -D
在webpack中添加配置:
module:{
rules:[
{
test:/\.less$/,
use:['style-loader','css-loader','less-loader']
}
]
}
複製代碼
解析圖片資源須要使用url-loader
:npm install url-loader -D
在webpack
中添加配置:
mofule:{
rules:[
{
test:/\.(png|jpg|svg|gif|jpeg)$/,
use:[{
loader:'url-loader',
options:{
//圖片大小小於1M轉化爲base64
limit:10240
}
}]
}
]
}
複製代碼
解析字體資源須要使用file-loader
: npm install file-loader -D
在webpack
中添加配置:
module:{
rules:[
{
test:/\.(woff|woff2|eot|ttf|otf)$/,
use:'file-loader'
}
]
}
複製代碼
使用webpack-dev-server
插件實現開發過程當中的代碼熱更新。WDS不刷新瀏覽器,不輸出文件,而是放在內存中,須要配合使用webpack
內置的HotModuleReplacementPlugin
插件。
首先安裝插件:npm install webpack-dev-server -D
;
而後在webpack
中添加配置:
const webpack = require('webpack');
module.exports = {
...
plugins:[
new webpack.HotModuleReplacementPlugin()
],
devServer:{
contentBase:'dist',
hot:true,
inline:true,
port:8888
}
}
複製代碼
最後須要在package.json
文件的scripts
中增長一條命令:"dev":"webpack-dev-server --open"
html-webpack-plugin
的做用:1,根據指定的頁面在內存中生成 指定的頁面;2,自動 將生成的xxx.js文件引用到頁面中去。首先安裝插件:npm install html-webpack-plugin -D
。 而後修改webpack
配置:
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
...
plugins:[
new HtmlWebpackPlugin({
template:path.join(__dirname,'src/index.html'),
filename:'index.html'
})
]
}
複製代碼
至此在終端運行:npm run dev
就能夠在瀏覽器中打開咱們的頁面,在代碼中修改能夠實現實時更新。