0

基本问题,我试图将我的 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.

所需文件的内容是一个简单的对象,它简单地构建一个具有事件订阅者的对象,以加载视图的应用程序功能。

有没有办法做到这一点?

4

1 回答 1

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();
    });
}
于 2015-02-21T23:45:54.660 回答