如何在 Ember.js 项目中导入 ES2015 JavaScript 模块
How to import a ES2015 JavaScript module in an Ember.js project?
我想在我的Ember.js项目中使用JavaScript模块(ES2015),但它不起作用。
我写了一个简单的示例 ES6 JavaScript 文件,
myES6lib.js
export default function square(b) {
return b * b;
};
在管理依赖之后,我运行了
ember generate vendor-shim myES6lib
并在 ember-cli-build 中添加了一行.js
app.import("vendor/shims/myES6lib.js");
然后我在 Ember 控制器中调用了 square 函数
import MyES6lib from "myES6lib";
...
console.log("Square(5) = " + MyES6lib.square(5));
但我收到如下错误消息:
Uncaught TypeError: _myES6lib.default.square is not a function
任何提示都值得赞赏,提前感谢。
注意:我试图通过 Babel 将 myES6lib 转换为 ES5 代码,但结果是一样的。
默认导出是 square
函数,因此不要像这样调用它:
console.log("Square(5) = " + MyES6lib.square(5));
你需要这样称呼它:
console.log("Square(5) = " + MyES6lib(5));
你的函数看起来更像是一个实用程序函数,把它移到yourApp/utils/square
,在这种情况下你不需要命名这个函数,因为它是文件中唯一的函数:
export default function(b) {
return b * b;
};
然后只需将其导入您的文件:
import myCustomSquare from 'myApp/utils/square';
并使用它myCustomSquare(2);
文件中的多个函数:
您将遵循与单个文件相同的逻辑,但在文件内部您将导出每个函数:
export function square(b) {
//your logic goes here
}
export function myOtherCustomFunction(b) {
//your logic goes here
}
从您的控制器/其他任何地方,您可以像这样导入它:
import { square, myOtherCustomFunction } from 'myApp/utils/myCustomFunctions'
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何将JSON数据导入我的ejs模板
- 如何将不可变的js导入angular 2(alpha)
- 将数据从javascript文件导入VB.Net页面
- 缩短ES2015导入路径
- ES2015“导入”在带有--harmony_modules选项的节点v6.0.0中不起作用
- 使用 foreach js es2015 进行动态导入
- 如何在ES2015中将模块中的选定函数作为对象导入
- 在ES2015中导入主干模板文本
- es2015 模块语法,如何导入项目目录之外的文件
- 如何在 Ember.js 项目中导入 ES2015 JavaScript 模块
- Typescript 1.8 - ES2015 导入 js 文件
- ES2015 node.js中的可选导入
- 是否可以导出“;将*导入为“;ES2015
- 如何通过自调用方法为常规包添加ES2015导入支持
- 用rollupjs、es2015模块导入
- 如何有选择地导入ES2015模块函数,但要使用命名空间
- 在ES2015中使用复杂的名称导入和导出
- 枚举ES2015中的通配符导入
- 在使用es2015语法导入模块并将Babel编译为es5时出错