如何在webpack的require.ensure回调里面操作chunk js文件的请求url?

时间:2016-03-03 04:12:50

标签: express lazy-loading webpack require react-router

随着Web开发的进行,js bundle文件越来越大,这带来了网页初始呈现的巨大延迟。我最近在学习webpack,里面用 require.ensure 来做懒人加载,这真是太神奇了。但是我遇到了一个针对我的具体情况的问题。

描述如下: 当我捆绑我的js文件时,它将生成两个块: ./bundle/bundle.js ./bundle/1.js (which is for lazy lodaing)

但是,我想在不同页面中延迟加载 1.js 。但是它的要求在不同的页面上是不同的。

EG。如果在第1页,它正在请求http://localhost/page1/1.js 在第2页上,它正在请求http://localhost/page2/1.js

这给后端带来了一个问题,即它不知道如何向其提供文件。真的很奇怪怎么能解决?有没有办法在require.ensure回调函数中操作请求url,这样无论在哪个页面,它都在请求使用相同的url?

1 个答案:

答案 0 :(得分:1)

您必须在webpack配置中使用publicPath参数 - 这正是您想要的:

output: {
    ...
    publicPath: '/scripts/' // Path to scripts relative to your site root
}