我们正试图使用ES6模块将我们的遗留项目迁移到Ember CLI/Ember App Kit结构,但我们有一些遗留Coffeescrapt文件需要在Ember App上下文之外运行。我们正试图通过使用"ember-cli Coffeescript"ember plugin/npm模块将Coffeescrap文件包括在Broccoli资产管道中。
如果我们在每个文件的底部添加一行,指定它们为ES6模块,那么额外的coffee脚本似乎只能编译:
`export default ModuleVariable`
这一行将它们添加到转换后的Ember代码的其余部分,如果没有它,Coffeescapet似乎根本无法编译。这通常是好的,但添加这一行也将它们封装在AMD风格的模块中,正如人们所期望的那样。是否有任何方法可以使用Ember CLI将它们导出到AMD模块之外,以便在浏览器加载后立即运行代码?
在Ember CLI约定中处理此问题的最佳方法似乎是使用上面的ES6模块导出代码,并在index.html中添加另一行,该行需要使用传统AMD语法的ES6 Module,如:
window.ModuleVariable = require('my-ember-app/module-variable')['default']