在ember.js中延迟导入外部js文件

j8yoct9x  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(156)

我正在尝试导入外部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();
}

目前,我一直在pivotTableRunner中导入该库,但结果是,我不得不对从node_modules导入的库进行一些修改。我将其内容复制到另一个文件中,并将其放在供应商文件夹中。有没有办法在pivotTableRunner任务完成后延迟导入它?

6bc51xsx

6bc51xsx1#

看起来建议的方法是创建一个本地NPM模块,然后通知它。

async afterModel(){
  await this.get('pivotTableRunner').perform();
  await import('LOCAL_PACKAGE');
}

this answer中提供了创建本地模块的一些很好的说明

相关问题