基本问题,我试图将我的webpack项目转换为jspm,其中我根据网站的当前视图加载JS,如下所示:
var currentView = document.body.getAttribute('data-jscontroller');
if ( currentView ) {
var viewPath = './views/' + currentView;
require( viewPath );
App.Views[currentView].init();
}
不幸的是,这会返回错误:
es6-module-loader.js:7:26213
TypeError: Module ./views/home not declared as a dependency.
所需文件的内容是一个简单的对象,它只是为加载的视图的应用程序功能构建一个具有事件订阅者的对象。
有没有办法实现这个目标?
答案 0 :(得分:0)
结果require
被静态解析,因此它们不允许在其中使用js变量。对于这些情况,有System.import
:
var currentView = document.body.getAttribute('data-jscontroller');
if ( currentView ) {
var viewPath = './views/' + currentView;
System.import(viewPath).then(function(){
App.Views[currentView].init();
});
}