Ember.js 在./vendor dir中具有命名导出的ES6 lib
Ember 2.0/Ember cli 1.13.8 在我的Ember 2.0项目中,我找不到从位于./vendor dir中的ES6模块导入名称导出的方法Ember.js 在./vendor dir中具有命名导出的ES6 lib,ember.js,Ember.js,Ember 2.0/Ember cli 1.13.8 在我的Ember 2.0项目中,我找不到从位于./vendor dir中的ES6模块导入名称导出的方法 简单的 在我的控制器中从“vendor/phoenix”导入{Socket}不会将库传输到ES5中 app.import('vendor/phoenix.js',{exports:{phoenix:['Socket']}})在我的ember cli build.js中也不会将库传输到ES5中 我也试过了 -- 由于命名导出,
- 简单的
不会将库传输到ES5中在我的控制器中从“vendor/phoenix”导入{Socket}
在我的app.import('vendor/phoenix.js',{exports:{phoenix:['Socket']}})
中也不会将库传输到ES5中李>ember cli build.js
- 我也试过了 --
- 由于命名导出,无法使其工作。(
错误:输入模块只能在严格模式下有命名导出(pass``strict:true`)
- 当我刚刚修改库以使用
时,错误消失了,但库不可用于导入。看起来西兰花没有将库合并到树中默认导出
ember cli build.js
:
var tree = './vendor';
var amdFiles = new ES6Modules(tree, {
format: 'amd',
bundleOptions: {
entry: 'phoenix.js',
name: 'phoenix'
}
});
return mergeTrees([app.toTree(), amdFiles]);
当您将ES6文件导入到ember应用程序时,您需要让ember通过transpiler运行该文件,以便执行此操作,您只需在控制器中执行导入。问题是ember需要将该文件保存在应用程序文件夹中,以便能够导入该文件 因此,将JavaScript文件放在app文件夹中,例如:
app/phoenixjs
然后在控制器中:
import phoenix from 'PROJECTNAME/phoenixjs/phoenix
然后可以在该文件中的任何位置使用phoenix对象
工作证明:
编辑
能够通过使用命名导入
import {Socket} from 'import-test-app/extends/phoenix';
import Ember from 'ember';
export default Ember.Controller.extend({
test:Socket.name
});
模板中的测试是“Socket”你能指出你使用的是哪一个库吗?它可能无法正确导出。我正在尝试使用looks find to me…我将尝试制作一个简单的应用程序,看看a是否可以导入或生成相同的应用程序issue@TBourque非常感谢!我花了几个小时寻找解决方案..好的,我相信我已经解决了问题..发布答案否wYeah,你完全正确。唯一的问题是我仍然不能做
命名
导入。只有默认
。它工作了,但只有我修改了库,将所有命名
导入合并成一个大的默认
导入。我能够像这样进行命名导入:导入{Socket}从“导入测试应用程序/extends/phoenix”中;嘿,你完全正确!我想我的问题是我将phoenix.js
放入了utils
,这是由Ember resolver获取的。非常感谢!