带有 React 热加载器的 publicPath

publicPath with react hot loader

我不太确定 webpack 中的 publicPath 是做什么的。具体来说,output.publicPath。在 github 文档中,我看到了这个

https://github.com/webpack/docs/wiki/configuration#outputpublicpath

The output.path from the view of the Javascript / HTML page.

对于reactjs热加载,我有

output: {
        path: path.resolve('./public/bundle/'),
        // path: './public/bundle',
        filename: 'main.js',
        // Webpack dev server is bound to port 8080, we have to force use of absolute URL, using the publicPath property
        publicPath: 'http://localhost:8080/public/bundle/'
    },

这是否意味着构建的webpack文件(main.js)被放置在我的dev-server http://localhost:8080/public/bundle/中?

是的,Webpack 需要知道您将在哪里托管生成的捆绑文件(或它生成的任何其他资产),以便它可以请求从文件加载器或 url 加载的其他块或文件-装载机。因此在这种情况下,当您启动 webpack-dev-server 时,您将能够访问您的捆绑文件:http://localhost:8080/public/bundle/main.js(任何相关资产,如图像、commonchunk、字体等都将在该路径下)

在开发服务器之外,您可以使用它来定义资产的位置(来自自定义目录甚至 CDN)