Webpack 中的 “publicPath” 是做什么的?

2022-08-30 00:05:59

Webpack 文档声明是:output.publicPath

从 JavaScript 的角度来看。output.path

您能详细说说这到底意味着什么吗?

我使用 并指定 Webpack 应该输出结果的位置,但我不确定要放入什么以及是否需要它。output.pathoutput.filenameoutput.publicPath

module.exports = {
  output: {
    path: path.resolve("./examples/dist"),
    filename: "app.js",
    publicPath: "What should I put here?"   
  } 
}

答案 1

output.path

本地磁盘目录,用于存储所有输出文件(绝对路径)。

例: path.join(__dirname, "build/")

Webpack 会将所有内容输出到localdisk/path-to-your-project/build/


output.publicPath

您上传捆绑文件的位置。(绝对路径,或相对于主 HTML 文件)

例: /assets/

假定您在服务器根目录 下部署了应用程序。http://server/

通过使用 ,该应用程序将在以下位置找到 webpack 资源:。在引擎盖下,webpack遇到的每个URL都将被重新编写为以“”开头。/assets/http://server/assets//assets/

src="picture.jpg"重写 ➡src="/assets/picture.jpg"

访问者: (http://server/assets/picture.jpg)


src="/img/picture.jpg"重写 ➡src="/assets/img/picture.jpg"

访问者: (http://server/assets/img/picture.jpg)


答案 2

在浏览器中执行时,webpack 需要知道您将在哪里托管生成的捆绑包。因此,它能够分别请求通过文件加载器或url加载器加载的其他块(使用代码拆分时)或引用文件。

例如:如果将 http 服务器配置为托管生成的捆绑包,则应在 以下写:/assets/publicPath: "/assets/"