美文网首页
Webpack 5(九)Dev Server

Webpack 5(九)Dev Server

作者: _于曼丽_ | 来源:发表于2023-10-20 08:53 被阅读0次

    安装 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 设置的是打包资源的访问路径

    相关文章

      网友评论

          本文标题:Webpack 5(九)Dev Server

          本文链接:https://www.haomeiwen.com/subject/pfkhidtx.html