webpack-dev-server启动开发服务器

195 阅读1分钟

第一步,创建一个新文件夹,然后再文件夹内打开控制台初始化package.json。

npm init -y

然后安装webpack-cli、webpack、webpack-dev-server,因为版本兼容性问题,上面所叙述插件都使用了固定版本的。

npm intsall -D webpack@5.36.2 webpack-cli@3.3.12 webpack-dev-server@3.11.2 然后我们修改package.json,添加启动命令和打包命令。


{
  "name": "myapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "webpack-dev-server --mode development",  //添加启动命令
    "build": "webpack --mode production"  //添加打包命令
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^5.36.2",
    "webpack-cli": "^3.3.12",
    "webpack-dev-server": "^3.11.2"
  }
}

第二部分,我们开始配置文件入口,服务等。

在文件夹内新建src文件夹,来当做我们启动服务映射的文件位置。

src内创建一个index.html作为页面模板。


<!-- // src/index.html -->

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  Hello
</body>
<script src="/bundle.js"></script>
</html>

上述中的bundle.js就是webpack打包后的main.js里所关联的资源,因为是热启动,所以路径有些许不一样,并不是真实的物理地址。

接着在根目录新建webpack.config.js配置文件,更多配置项目可以参考官网开发服务器配置


// webpack.config.js
const path = require('path');

module.exports = {
	entry: './src/main.js', //入口文件
	output: {
		path: path.join(__dirname, './dist'), //打包位置 
		filename: 'bundle.js', //打包后文件名称
	},
	devServer: {  //本地调试服务配置
		port: 80, //端口   
		host: '0.0.0.0', //局域网访问可填写'0.0.0.0'
		hot: true, //启动热更新 
		filename: 'bundle.js', //入口文件引入
		contentBase: path.join(__dirname, 'src'), //映射资源目录位置 
	},
};

最后在控制台输入 npm run dev 启动开发服务器。

打开浏览器,输入http://127.0.0.1/#,就可以看到网页的雏形啦。

然后就可以在main.js里面开始扩展咯。