【问题标题】:How to use ES6 module in ember.js (with ember cli)?如何在 ember.js 中使用 ES6 模块(使用 ember cli)?
【发布时间】:2017-09-07 06:27:57
【问题描述】:

当我使用 cli 生成控制器/路由/模型等时,使用 ember cli 设置的标准项目似乎正在使用 ES6 模块。有时虽然我想导入/导出附加功能/模块,即。我可能想在单独的文件中编写我在控制器中使用的函数。 当我尝试以标准 ES6 方式导入函数时,ember-cli 似乎在处理它时遇到了问题。 假设我创建了控制器:

ember g route tesit

然后我在 app/routes/testit/logger.js 中创建一个函数

const logger = function(msg) {
  console.log(msg);
};

export default logger;

并将其导入我的控制器 app/routes/testit.js:

import Ember from 'ember';
import logger from './testit/logger.js'

export default Ember.Route.extend({
  beforeModel() {
    logger('it works');
  }
});

然后我收到以下错误:

Error: Could not find module myproject/routes/testit/logger.js imported from myproject/routes/testit

我该如何解决?

【问题讨论】:

  • import logger from './testit/logger.js'中删除.js
  • 感谢 ykaragol,很有趣 - babel 可以与扩展一起使用,也可以在没有它的情况下使用。但这有效 - 太棒了! :-)
  • 感谢艾伦·博古。我将其复制为答案并添加了参考。
  • 另请注意,这是 Ember 认为的 util,最好放在 utils 文件夹中。在某个时候,一旦新的 Ember 解析器就位,这可能是一个要求......

标签: ember.js ember-data ember-cli es6-modules


【解决方案1】:

import logger from './testit/logger.js'; 行中删除.js 扩展。

请参阅来自 MDN 的 Description section

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 2023-03-10
    • 2019-10-28
    • 2015-10-02
    • 2020-10-25
    相关资源
    最近更新 更多