(二)构建本地服务器

webpack-dev-server

如果想让你的浏览器监听你的代码的修改,并自动刷新显示修改后的结果,那你就需要单独安装它作为项目依赖。

npm install webpack-dev-server -g // 全局安装
npm install webpack-dev-server --save-dev // 项目内安装   此练习是在根目录下安装
  • 是一个小型node.js express服务器
  • 新建一个开发服务器,可以serve我们pack以后的代码,并且当代码更新的时候自动刷新浏览器
  • 启动webpack-dev-server后,你在目标文件夹中是看不到编译后的文件的,实时编译后的文件都保存到了内存当中
  • 注:如果要全局安装着个命令,那么在全局安装完webpack之后就可以执行这个命令,如果只是要安装到项目中,在项目根目录下安装(不加-g,在项目根目录出现node_modules文件夹,内含webpack-dev-server及其依赖包)

devserver作为webpack配置选项中的一项,以下是它的一些配置选项

配置选项 描述
contentBase 默认webpack-dev-server会为根文件夹提供本地服务器,如果想为另外一个目录下的文件提供本地服务器,应该在这里设置其所在目录(本例设置到“common"目录)
port 设置默认监听端口,如果省略,默认为”8080“
inline 设置为true,当源文件改变时会自动刷新页面
historyApiFallback 在开发单页应用时非常有用,它依赖于HTML5 history API,如果设置为true,所有的跳转将指向index.html

如果想看更多配置选项请点击查看更多
本文以webpack文章的demo为例,如果未阅读上文,并且想了解完整过程请点击回到上文
webpack.config.js配置文件中添加如下代码:

module.exports = {
    ...
    devServer: {
        contentBase: "./common", // 本地服务器所加载的页面所在的目录
        historyApiFallback: true, // 不跳转
        inline: true // 实时刷新
    } 
}

package.json中的scripts对象中添加如下命令,用以开启本地服务器:

{
 ...
  "scripts": {
    ...
    "server": "webpack-dev-server --open"
  },
  ...
  **2.0版本**
  "devDependencies": {
    "webpack": "^3.5.6", 
    "webpack-dev-server": "^2.5.1"
  }
  **4.0版本**
  "devDependencies": {
    "webpack": "^4.29.5",
    "webpack-cli": "^3.2.3",
    "webpack-dev-server": "^3.1.14"
  }
}

**注意:webpack版本与webpack-dev-server版本有兼容,注意查看版本号。
在终端中输入npm run server即可在本地的8080端口查看结果如下:

image.png

页面运行结果:
image.png