ember-cli可以导入json和其他非JS文件吗?

时间:2015-01-04 23:40:47

标签: ember.js ember-cli

鉴于ember-cli使用ES6模块语法导入其他JavaScript文件,是否也可以使用相同的语法导入非JavaScript文件,例如JSON文件或其他文本文件?

假设我有一个名为" foo.json"的JSON文件。在我当前的目录中。如何将该文件的内容导入到当前JavaScript文件中的变量中?我尝试了几种不同的变体:

import foo from 'foo.json';

if (typeof foo === 'object') {
  // Success
} else {
  // import failed
}

是否可以使用import语句或任何其他方式将非JavaScript文件导入当前文件?

2 个答案:

答案 0 :(得分:2)

不,不是。用于导入内容的ES6模块语法还需要正确导出所请求的对象,而json文件或文本文件将不会被导出。此外,由于我们尚未在浏览器中使用ES6,因此在构建项目时,所有这些漂亮的语句都会转换为commonjs-modules。

我认为你有两种选择。

将文件放在公共文件夹中并通过ajax加载它们是一个简单的解决方案,虽然不是很优雅。

很酷的选择是添加一个自己的预处理器,它将你的json文件包装在一个正确的export-statement中作为构建步骤。这将是相当多的工作,可能需要深入潜入ember-cli和西兰花,以便在正确的时间附上它。

答案 1 :(得分:1)

是的,只要你有合适的插件,ember-cli就可以导入JSON和非JS文件。

这个允许导入JSON文件: https://github.com/IvyApp/ember-cli-json-module

......这个适用于YAML:https://github.com/joankaradimov/ember-cli-yaml-module