JSPM 中的无名要求
Nameless requires in JSPM
基本问题,我试图将我的 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.
所需文件的内容是一个简单的对象,该对象只是使用加载视图的应用程序功能的事件订阅者构建一个对象。
有没有办法实现这一目标?
事实证明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();
});
}
相关文章:
- JSPM与外部系统js文件绑定
- JSPM 中的无名要求
- 将Zurb Foundation 6 javascript与jspm结合使用
- 导入会产生未定义的Karma+ES6+jspm
- 使用 SystemJS/jspm 在生产环境中加载异步的 es5 模块
- 使用非 npm(遗留)JavaScript 库和 Jspm
- 使用 jspm 配置运行打字稿 angular2 应用程序的页面加载时出错
- Angular 2 + JSPM:未按预期工作
- 使用带有 JSPM 的自定义 Kendo-UI 构建
- jspm / jQuery / TypeScript - 模块“jquery”没有默认导出
- 无法使用 JSPM 实例化模块 kendo.directives
- 使用 webpack 和 jspm 以及外部依赖项
- JSPM 服务器错误:在 SystemJS 加载之外的文件发生更改
- 组件初始化无限循环-Angular 2 JSPM
- jspm强制错误的默认值
- 角度单元测试初始化”;无名的“;指令中的控制器
- 用于创建前端库的jspm工作流
- JSPM-是否有方法或需要对捆绑文件进行版本化
- 如何使用jspm/system.js正确加载本地AMD模块
- 通过JSPM加载(自定义)模块