2017-12-27 997 views
0

所有babel模塊/插件都在最新版本的babel v6上。 Mocha已在v4.0.1上。使用摩卡運行時,仍然會收到語法錯誤,導入爲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和syntax-dynamic-import沒有正確協同工作。因爲當我在webpack中將它與babel-loader一起使用時,我在transpile上沒有得到任何語法錯誤。

+0

想通了。我轉移到動態導入節點。我以前曾嘗試過這種方式,但仍然失敗。它仍然失敗的原因是因爲有些東西被緩存在某處。可能來自摩卡或巴貝爾。所以如果我改變了文件或測試'dynamic-import-node'開始按預期工作。 –

+0

不知道爲什麼'syntax-dynamic-import'不能和babel-register一起工作。 –

回答

1

這個答案從薩蒂亞吉特Sahoo babeljs鬆弛茅塞頓開對我來說:

syntax-dynamic-import將只允許在巴比倫的語法,這意味着它可以巴比倫解析代碼沒有語法錯誤。代碼import(...)仍然存在,哪個節點不理解,您仍然需要傳輸它。 dynamic-import-node將該節點能夠理解的import(...)轉換爲require。在客戶端,由於Webpack理解語法並進行捆綁,因此不需要傳輸步驟。

相關問題