1
test.js
파일에 export
키워드를 사용하려고합니다. test.js
파일은 매우 간단합니다.Chrome63에서 es6 내보내기 키워드를 사용할 수 없습니다.
const foo = Math.PI;
export { foo };
그리고 나는 karma
을 사용하여 테스트를 수행하고 있습니다. 내 Chrome
버전은 아래 로그에 표시된대로 61
보다 큽니다. export
구문은 61보다 큰 크롬 버전에서 완전히 지원되므로 위의 코드가 작동해야하지만 실패합니다.
$ karma start --browsers Chrome
01 10 2017 12:29:37.346:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
01 10 2017 12:29:37.350:INFO [launcher]: Launching browser Chrome with unlimited concurrency
01 10 2017 12:29:37.357:INFO [launcher]: Starting browser Chrome
01 10 2017 12:29:38.288:INFO [Chrome 63.0.3205 (Mac OS X 10.11.6)]: Connected on socket PV-MAe-R6vm4JntCAAAA with id 24009783
Chrome 63.0.3205 (Mac OS X 10.11.6) ERROR
Uncaught SyntaxError: Unexpected token export
at test/test.js:2
왜 이런 일이 벌어 질 수 있습니까?
답변을 주셔서 감사합니다. ES6 모듈을 지원하는 다른 테스트 도구가 있습니까? 나는 카르마에 정말로 묶여 있지 않으며, 가능하다면 트랜스퍼러를 추가하지 않고 모든 것을 ES6에 고집하는 것을 선호 할 것입니다. 나는 '카르마', '모카', '콰 니트'의 상대적인 능력에 익숙하지 않다. 그들 중 누구라도 ES6를 완벽하게 지원합니까? 또한 나는 어떤 bundler를 사용할지를 정말로 이해하지 못한다고 생각한다. 'Rollup '은 증발 할 수 있습니까? – Pushpendre
모카는 브라우저 용 러너를 제공하지 않습니다. Jest가 있지만, 의도적으로 네이티브 모듈을 지원할 것 같지는 않습니다. 다시 말하지만, 앱이 제 3 자 모듈을 질식시킬 수 있기 때문에 비실용적입니다. 모듈을 스텁/모의/처리 할 가능성은 제로입니다. 롤업 또는 웹팩을 사용하여 앱을 트랜스 빌 딩하고 번들링 할 수 있지만 사실은 완전한 기능을 갖춘 테스트 러너 (카르마)가이를 처리한다는 것입니다. 카르마는 [플러그인을 통해] (https://github.com/babel/karma-babel-preprocessor) 않습니다. – estus