2017-12-27 48 views
0

모든 babel 모듈/플러그인이 babel v6의 최신 버전에 있습니다. 모카가 v4.0.1을 사용 중입니다.mocha와 함께 실행할 때 babel-plugin-syntax-dynamic-import를 사용하여 동적 가져 오기에 대한 구문 오류가 계속 발생합니다.

설정 : 내 테스트 스위트를 실행할 때

// .babelrc 
{ 
    presets: [ 
     "stage-3", 
     [ 
     "env", 
     { 
      "targets": { 
       "browsers": [ 
       "last 2 versions" 
       ], 
       "node": "current" 
      } 
     } 
     ] 
     "react" 
    ], 
    plugins: ["transform-runtime", "syntax-dynamic-import"] 
} 


// mocha.opts 
--recursive 
--reporter progress 
--require babel-polyfill 
--require babel-register 
--timeout 20000 

그래서 난 아직도 얻을 : error stack trace.

babel-register와 구문 - 동적 가져 오기가 올바르게 작동하지 않는다고 생각합니다. 왜냐하면 내가 webpack의 babel-loader와 함께 사용할 때 나는 transpile에 어떤 문법 에러도 가지지 않기 때문이다.

+0

알아 냈습니다. 동적 가져 오기 노드로 이동했습니다. 이전에 이것을 시도했지만 여전히 실패했습니다. 여전히 실패한 이유는 무언가가 어딘가에 캐시되기 때문입니다. 모카 나 바벨에서 왔을 수 있습니다. 그래서 파일이나 테스트를 변경하면'dynamic-import-node'가 예상대로 작동하기 시작합니다. –

+0

'syntax-dynamic-import'가'babel-register'와 함께 작동하지 않는 이유를 모르겠습니다. –

답변

1

사티 야지 트 Sahoo에서 babeljs 불황기에이 대답은 나를 위해 일을 정리 :

syntax-dynamic-import

만이 바빌론 구문 오류없이 코드를 분석 할 수 있음을 의미 바빌론의 구문을 가능하게 할 것이다. import(...) 코드가 여전히 존재하는데, 어떤 노드가 이해할 수 없으며 여전히 그것을 transpile 할 필요가 있습니다. dynamic-import-node은 노드가 이해하는 import(...)에서 require으로 이동합니다. 클라이언트에서는 Webpack이 구문을 이해하고 번들링을 수행하므로 추출 단계가 필요하지 않습니다.