2014-06-19 6 views
2

, 나는 JSLint에서 다음과 같은 오류가 발생합니다 :Ember-CLI : " 'Ember'가 정의되지 않았습니다."라는 오류가 수정 되었습니까? 엠버 - CLI를 사용하여 타다 남은 서버를 실행하는 경우

[app_path]/filename.js: line 1, col 16, 'Ember' is not defined. 

import Ember from 'ember'; 수정이 추가.

내 모든 파일을 가져 오는 공식적인 방법입니까? 설명서에는이 변경 사항이 아직 언급되어 있지 않습니다.

답변

7

편집 스테판 페너에서

:

우리는 명시 적으로 [.jshintrc 파일]이 [엠버]를 왼쪽으로, 대신 엠버을 가져 주시기 바랍니다.

점점 더 많은 엠버를 es6으로 노출시킬 계획입니다. 언젠가는 을 사용하면 사용하지 않는 엠버 파트를 툴링에서 제거 할 수 있습니다. 작은 빌드가 생성됩니다.

아직 그 날짜가 지나면 번 버스를 .jshintrc에 저장하는 데 많은 시간을 절약 할 수 있습니다.

오래된 답변

당신의 .jshintrc 파일에서

(또는 tests/.jshintrc), 당신은 PREDEF 개체에 대한 각 모듈에서 정의하고 싶지 않아요 글로벌 네임 스페이스에 무엇을 추가 할 수 있습니다. 예 :

{ 
    "predef": { 
    "document": true, 
    "window": true, 
    "SprintStatusENV": true, 
    "Ember": true, // Added 
    "$": true, // ADDED 
    "Modernizr": true // ADDED 
    }, 
    "browser" : true, 
    "boss" : true, 
    "curly": true, 
    "debug": false, 
    "devel": true, 
    "eqeqeq": true, 
    "evil": true, 
    "forin": false, 
    "immed": false, 
    "laxbreak": false, 
    "newcap": true, 
    "noarg": true, 
    "noempty": false, 
    "nonew": false, 
    "nomen": false, 
    "onevar": false, 
    "plusplus": false, 
    "regexp": false, 
    "undef": true, 
    "sub": true, 
    "strict": false, 
    "white": false, 
    "eqnull": true, 
    "esnext": true, 
    "unused": true 
} 

이 예에서는 '$'및 Modernizr을 사용하여 Ember (Em를 정의 할 수도 있음), jQuery를 정의합니다. 그러면 터미널에 나타나는 jshint 오류 메시지가 중지됩니다.

은 당이다 ember-cli docs :

"당신이 전역 네임 스페이스 (예 moment.js)에 기록 외부 라이브러리를 사용하려는 경우, 당신은 당신의 의 PREDEF 섹션에 사람들을 추가 할 필요가 프로젝트의 .jshintrc 파일을 열고 그 값을 true로 설정하십시오 .Lib 을 테스트에 사용하는 경우 테스트/.jshintrc 파일에 추가해야합니다. "

+1

이것은 알아두면 좋을 것입니다 ... 왜 'Ember'가 기본적으로 빠져 있는지 궁금합니다. * Ember * 앱에서 많이 사용해야하는 것처럼 보입니다 ... 아니요? – Grapho

+0

우리는 그것을 명시 적으로 버렸습니다. 대신 ember를 가져 오십시오. –

+0

@StefanPenner - 의견에 감사드립니다. 추론을 확장 할 수 있습니까? 내 대답을 편집 할게. –

6

Ember 모듈을 빠르게 가져 오는 것은 공식적인 방법입니다. 아래 Using Modules & the Resolver에 Ember를 사용하려면 import Ember을 명시하고 Ember Data에는 import DS을 명시해야한다고 명시되어 있습니다.

나는 그 이유를 찾고 있었지만 아직 아무것도 찾지 못했지만 의존성을 명시 적으로 지정하고 일반 오래된 JavaScript 객체 파일을 만들 수 있다고 가정하고 있습니다.

+0

"평범한 오래된 JavaScript 객체 파일을 만들 수있게하십시오."- 내가 한 일이 될 수도 있습니다 ... 또한 설명서에 추가 된 것은 일주일 전에 추가 된 것처럼 보입니다. 지금까지 그것을 알아 채지 못했습니다. 감사! – Grapho

+1

오늘 아침에 새 문서를 찾았습니다. 나는 당신의 질문을 발견했을 때 스스로 답을 찾고 있었기 때문에 나는 대답 할 것이라고 생각했다. – jluckyiv