publicPath的使用说法适用于生产环境,
默认情况下,webpack-dev-server 会把打包后的文件放到项目的根目录下,文件名是在output配置中的filename. 但是当有publicPath 配置的时候,就不一样了。
Webpack 会把所有的文件打包到publicPath指定的目录下, 就是相当于在项目根目录下创建了一个publicPath目录, 然后把打包成的文件放到了它里面,只不过我们看不到而已, 文件名还是output配置中的filename。
补充
补充:
output.publicPath是 webpack 配置中指定"产物 URL 前缀"的选项,影响:
- 构建产物中所有静态资源的引用路径(JS / CSS / 图片 / 字体)。
- webpack-dev-server 在开发时挂载资源的根路径。
- 运行时动态加载(
import()、代码分割、模块联邦等)发出的请求前缀。常见取值与场景:
publicPath: '/':部署到站点根目录时使用。publicPath: '/static/':产物放到子目录时使用,所有 URL 会自动加上该前缀。publicPath: 'https://cdn.example.com/':把静态资源发到 CDN(最常见的"动静分离"做法)。publicPath: 'auto'(webpack 5):根据运行时上下文自动推断(适合动态部署到不同子路径的场景,例如 GitHub Pages)。module.exports = { output: { path: path.resolve(__dirname, 'dist'), filename: '[name].[contenthash:8].js', publicPath: 'https://cdn.example.com/assets/' } };注意:
publicPath必须以/结尾(绝对路径)或包含协议(完整 URL);错误写法(如'./')会让运行时去相对路径请求导致 404。
来源整理自:我的有道云笔记



