Ember 2.0 / ember-cli 1.13.8
我无法找到一种方法从我的Ember 2.0项目中的./vendor目录中的ES6模块导入名称导出。
import {Socket} from 'vendor/phoenix'
不会将lib转换为ES5 app.import('vendor/phoenix.js', {exports: {phoenix: ['Socket']}})
中的ember-cli-build.js
也没有将lib转换为ES5。 Error: Entry module can only have named exports in strict mode (pass ``strict: true``)
default export
时,错误消失了但是库无法导入。看起来Broccoli没有将lib合并到树中。 这是我的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]);
答案 0 :(得分:2)
当您将ES6文件导入到ember应用程序时,您需要让ember通过转换程序运行该文件,因此您只需在控制器中执行导入即可。问题是,ember需要将文件放在app文件夹中才能导入它。
所以将JavaScript文件放在app文件夹下的say:
下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”