Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在运行时动态重写css块url_Javascript_Node.js_Webpack_Vuejs2_Code Splitting - Fatal编程技术网

Javascript 在运行时动态重写css块url

Javascript 在运行时动态重写css块url,javascript,node.js,webpack,vuejs2,code-splitting,Javascript,Node.js,Webpack,Vuejs2,Code Splitting,我目前正在扩展一个现有的vueJS项目,我们希望将网页包块作为“附加组件”加载,而不是将它们绑定到主项目中。 我们从RestAPI获取附加信息,RestAPI返回指向网页块的相对链接,如下所示: [ "/addons/calendar/calendar-component.7024d837.js", "/addons/calendar/vendors~calendar-component.bc898c3c.js", "/addons/calend

我目前正在扩展一个现有的vueJS项目,我们希望将网页包块作为“附加组件”加载,而不是将它们绑定到主项目中。 我们从RestAPI获取附加信息,RestAPI返回指向网页块的相对链接,如下所示:

[
"/addons/calendar/calendar-component.7024d837.js",
"/addons/calendar/vendors~calendar-component.bc898c3c.js",
"/addons/calendar/calendar-component.b68dd9ce.css",
"/addons/calendar/vendors~calendar-component.13f98a9b.css"
]
现在的问题是webpack默认从URL调用资产,如下所示:

/static/js/chunk-d92a011e.1414c555.js
所以我必须在JS脚本的运行时重写链接。对于js块,我发现这个模块工作得很好,但它并没有加载css块(我已经打开了一张罚单,但我需要快速找到解决方案…)

我试图在每次加载js块时手动加载css块,但由于某种原因,VueRouter一直挂起,因为(我猜)我需要在
标记的onload函数中添加额外的代码,就像webpack正在这样做一样

 var linkTag = document.createElement('link')
    linkTag.rel = 'stylesheet'
    linkTag.type = 'text/css'
    linkTag.onload = () => { console.log('preload css for module: ' + chunkName) }
    linkTag.href = cssFile
    //webpack would add code to linkTag.onload
    var s = document.getElementsByTagName('head')[0]
    s.appendChild(linkTag)
有人知道怎么做吗?我只能找到不合适的编译时解决方案

TLDR:我需要这样的伪代码:

cssUrlRewriter.rewriteOnCssLoad((oldUrl) => {
  return oldUrl + '?foo=bar'
})