2015-01-04 1 views
0

ember-cli가 ES6 모듈 구문을 사용하여 다른 JavaScript 파일을 가져 오는 경우 JSee 파일이나 다른 텍스트 파일과 같은 JavaScript가 아닌 파일을 가져 오는 것과 동일한 구문을 사용할 수 있습니까?ember-cli json 및 기타 JS 파일을 가져올 수 있습니까?

현재 디렉토리에 "foo.json"이라는 JSON 파일이 있다고 가정합니다. 어떻게 그 파일의 내용을 현재 JavaScript 파일 내의 변수로 가져올 수 있습니까? 내가 성공하지 않고, 여러 가지 변화를 시도했다 :

import foo from 'foo.json'; 

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

import 문 또는 다른 방법을 사용하여 현재 파일에 자바 스크립트가 아닌 파일을 가져올 수 있습니까?

답변

2

아니요. 물건을 가져 오기위한 ES6 모듈 구문에도 json 파일이나 텍스트 파일이 아닌 요청 된 오브젝트가 제대로 내보내 져야합니다. 또한 브라우저에 아직 ES6이 없기 때문에 모든 멋진 문장은 프로젝트를 빌드 할 때 commonjs-modules로 변환됩니다.

내가보기에이 옵션에는 두 가지 옵션이 있습니다.

파일을 공용 폴더에 넣고 아약스를 통해로드하면 간단한 해결책이지만 그다지 우아하지는 않습니다.

멋진 옵션은 json 파일을 빌드 단계로 적절한 내보내기 명령문에 래핑하는 자체 처리기를 추가하는 것입니다. 그것은 꽤 많은 일이 될 것입니다. 그리고 ember-cli와 broccoli에 적절한 시간에 그것을 부착하기 위해 깊은 다이빙이 필요할 수도 있습니다.

+0

알아낼 수 있다면 "멋진"옵션을 선호합니다. JSON 파일을 ES6/AMD js 모듈로 바꾸는 브로콜리 플러그인을 사용하는 경우 생성 된 js 모듈을 기본 app.js 파일 (assets/app.js에 있음)로 가져 오는 방법이 있습니까? – jake

+0

app.js로 가져 오는 것은 까다로운 일일 수 있지만,'app.import()'를 사용하면 vendor.js에 넣을 수 있습니다. –