问题描述
我正在尝试在我的一条应用程序路由中导入外部js文件。
@(task(function* () {
yield import('jquery/dist/jquery').then(module => module.default);
yield import('jquery-ui/ui/widget.js').then(module => module.default);
yield import('jquery-ui/ui/widgets/mouse.js').then(module => module.default);
yield import('jquery-ui/ui/data.js').then(module => module.default);
yield import('jquery-ui/ui/ie.js').then(module => module.default);
yield import('jquery-ui/ui/scroll-parent.js').then(module => module.default);
yield import('jquery-ui/ui/version.js').then(module => module.default);
yield import('jquery-ui/ui/widgets/sortable.js').then(module => module.default);
yield import('jquery-ui/ui/position.js').then(module => module.default);
yield import('pivottable/dist/pivot.js').then(module => module.default);
})) pivottableRunner;
afterModel(){
this.get('pivottableRunner').perform();
}
目前,我一直在将该数据库导入ivottableRunner中,但事实证明,我不得不对从node_modules导入的该库进行一些修改。我将其内容复制到另一个文件,并将其放置在供应商文件夹中。在pivottableRunner任务之后,有什么方法可以懒惰地导入它吗?
解决方法
看来the suggested path就是要创建一个本地NPM模块,然后进行介绍。这可以让你做
async afterModel(){
await this.get('pivotTableRunner').perform();
await import('LOCAL_PACKAGE');
}
中提供了一些有关创建本地模块的良好说明。