Javascript 如何在“窗口”中公开网页包依赖项?
这个问题来自于我正在进行的一项研究。这里是一个简短的总结 Kirby配线架使用Vue和Vuex,并将它们与Webpack捆绑在一起(通过Vue CLI)。它有两块,供应商和应用程序。人们也可以为这个面板编写插件。JS执行顺序如下:Javascript 如何在“窗口”中公开网页包依赖项?,javascript,webpack,kirby,Javascript,Webpack,Kirby,这个问题来自于我正在进行的一项研究。这里是一个简短的总结 Kirby配线架使用Vue和Vuex,并将它们与Webpack捆绑在一起(通过Vue CLI)。它有两块,供应商和应用程序。人们也可以为这个面板编写插件。JS执行顺序如下: vendors.js区块 插件的JavaScript包(例如,myplugin.js) app.js块 问题是-myplugin.js如何引用与app.js相同的Vuex?正如我在本期文章中所述,如果我在myplugin.js中使用自己的Vue和Vuex,Vue就会出
import Vue from 'vue'
import Vuex from 'vuex'
window.KirbyVue = Vue
window.KirbyVuex = Vuex
因为app.js块是在myplugin.js之后执行的。因此,当myplugin.js中的导入被解析时,对KirbyVuex
的引用将不存在。所以你不能做:
new KirbyVuex.Store({
...
})
因为KirbyVuex
将是未定义的
显然,这些依赖项应该在vendors.js块中公开。有没有可能发生这种情况?插件可能需要使用Vue和Vuex之外的其他面板依赖项。如果它们已经存在,那么将它们包括进来是多余的。此外,插件和面板可能需要共享相同的依赖关系状态,在这种情况下,需要使用相同的依赖关系(我在这里使用Vuex就是这样)
面板是否有办法向窗口
对象公开其依赖项?它已经创建了包含插件有用数据的window.panel
。它是否可以在其中添加window.panel.vendors
?或者可能只是window.vendors
?从那里,您可以在插件中使用new vendors.Vuex.Store(…)
网页包中是否有允许依赖项暴露于外部代码的功能