新建一个空文件夹,如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
就能够在浏览器中打开咱们的页面,在代码中修改能够实现实时更新。