WebpackDevServer
它的作用就是帮助你刷新页面 这样你不用每次更改在手动刷新页面
(1) 安装 WebpackDevServer
cnpm i webpack-dev-server -D
(2)修改 webpack.config.js
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')
var path = require('path')
module.exports = {
mode: 'development',
devtool: 'cheap-module-eval-source-map', //开发阶段
//devtool:"cheap-module-source-map", //线上环境开发
entry: {
main: './src/index.js', //入口文件路径
},
devServer: {
contentBase: './dist',
open: true,
},
module: {
rules: [
{
test: /\.(jpg|png|gif)$/,
use: {
loader: 'url-loader',
options: {
name: '[name]_[hash].[ext]',
outputPath: 'images/',
limit: 2048,
},
},
},
{
test: /\.(eot|ttf|svg))$/, //加载字体文件验证
use: {
loader: 'file-loader',
},
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader', 'postcss-loader'],
},
],
},
//加入插件
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html',
}),
new CleanWebpackPlugin(['dist']), //删除这个目录下面的文件
],
output: {
filename: 'bundle.js', //输出得名字
path: path.resolve(__dirname, 'dist'), //输出得路径 __dirname就是当前目录
},
}
(3)修改 package.json 里面添加
{
"scripts":{
"start":"webpack-dev-server"
}
}
(4) 有的时候我们还需要代理设置可以这样,还可以加端口号
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')
var path = require('path')
module.exports = {
mode: 'development',
devtool: 'cheap-module-eval-source-map', //开发阶段
//devtool:"cheap-module-source-map", //线上环境开发
entry: {
main: './src/index.js', //入口文件路径
},
devServer: {
contentBase: './dist',
open: true,
proxy: {
'/api': 'http://localhost:3000', //凡是访问/api都会代理到localhost:3000
},
port: 8080,
},
module: {
rules: [
{
test: /\.(jpg|png|gif)$/,
use: {
loader: 'url-loader',
options: {
name: '[name]_[hash].[ext]',
outputPath: 'images/',
limit: 2048,
},
},
},
{
test: /\.(eot|ttf|svg))$/, //加载字体文件验证
use: {
loader: 'file-loader',
},
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader', 'postcss-loader'],
},
],
},
//加入插件
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html',
}),
new CleanWebpackPlugin(['dist']), //删除这个目录下面的文件
],
output: {
filename: 'bundle.js', //输出得名字
path: path.resolve(__dirname, 'dist'), //输出得路径 __dirname就是当前目录
},
}