Webpack 5(九)Dev Server

安装 webpack-dev-server

npm i -D webpack-dev-server

修改 package.json

"scripts": {
  "build": "webpack",
  "serve": "webpack serve --open"
},

修改 webpack.config.js

module.exports = {
  // 开发模式推荐
  devtool: 'eval-source-map'
  // 生产模式推荐
  devtool: 'source-map'
  devServer: {
    // hot 默认为 true
    hot: true,
    // 如果返回结果为 404,则重定向到 index.html
    historyApiFallback: true,
    client: {
      // 当出现编译错误或警告时,在浏览器中显示全屏覆盖
      overlay: true,
    },
    devMiddleware: {
      // 自定义访问资源的路径
      publicPath: '/publicPathForDevServe/'
    },
    // 设置静态资源目录的位置以及访问路径,如果不需要静态资源,则不需要设置 static 属性
    static: {
      directory: path.resolve(__dirname, 'assets'),
      publicPath: '/static/'
    }
}

在开发模式下,devServer 自动开启一个开发服务器,并且将所有打包生成的资源存储到内存当中,然后通过 http://[devServer.host]:[devServer.port]/[output.publicPath]/资源名称来访问对应的资源。 这时候 output.publicPath 应该设置为相对服务的路径,例如 /

如果不想使用默认的基于 output.publicPath 的资源访问路径,可以设置 devServer 配置中的 devMiddleware.publicPath 选项自定义访问资源的路径,通过 http://[devServer.host]:[devServer.port]/[devMiddleware.publicPath]/资源名称 来访问对应的资源,但是通过插件生成的 html 和 css 文件当中所有资源引用的路径仍然使用的是 http://[devServer.host]:[devServer.port]/[output.publicPath]/资源名称。因此需要保证 output.publicPathdevMiddleware.publicPath 一致。

通过 http://[devServer.host]:[devServer.port]/webpack-dev-server 查看 devServer 提供的所有资源列表。

静态资源

静态资源是那些不属于模块的依赖图中的资源,因此 webpack 不会打包静态资源,静态资源会原封不动地放在原处。static 设置的是静态资源目录的位置。

  • static.directory 设置静态资源的存储路径
  • static.publicPath 设置静态资源的访问路径。
  • output.path 设置的是打包资源的存储路径
  • output.publicPath 设置的是打包资源的访问路径
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容