2015-06-22 25 views
4

我試圖使用babel ES6和JSX爲摩卡測試transpilation。`無效映射`錯誤嘗試使用巴貝爾需要鉤子和polyfill與反應jsx transpile

假設我們有test.jsx這樣的:

var React = require("react"); 
React.createClass({ 
    render: function(){ 
    return (<div>Hello World</div>); 
    } 
}); 

運行babel test.jsx爲我們提供了有效的轉化代碼。沒問題。

我希望,如果我創建一個test.js文件是這樣的:

require("babel/register"); 
require("./test.jsx"); 

然後運行node test.js,它會transpile我JSX爲我行,而是我得到一個錯誤:

c:\Users\user\dev\app\node_modules\babel\node_modules\babel-core\lib\babel\t 
ransformation\file\index.js:628 
     throw err; 
      ^
Error: c:/Users/user/dev/app/test.jsx: Invalid mapping: {"generated":{"line" 
:6,"column":11},"source":"c:/Users/user/dev/app/test.jsx","name":null} 
    at SourceMapGenerator_validateMapping [as _validateMapping] (c:/Users/user/dev/app/node_modules\babel\node_modules\source-map\lib\source-map\source-map- 
generator.js:275:15) 
    at SourceMapGenerator_addMapping [as addMapping] (c:/Users/user/dev/app/ 
node_modules\babel\node_modules\source-map\lib\source-map\source-map-generator.j 
s:105:14) 
    at SourceMap.mark (c:/Users/user/dev/app/node_modules\babel\node_modules 
\babel-core\lib\babel\generation\source-map.js:65:9) 
    at CodeGenerator.print (c:/Users/user/dev/app/node_modules\babel\node_mo 
dules\babel-core\lib\babel\generation\index.js:236:16) 
    at NodePrinter.plain (c:/Users/user/dev/app/node_modules\babel\node_modu 
les\babel-core\lib\babel\generation\node\printer.js:16:27) 
    at CodeGenerator.ReturnStatement (c:/Users/user/dev/app/node_modules\bab 
el\node_modules\babel-core\lib\babel\generation\generators\statements.js:120:13) 

    at CodeGenerator.print c:/Users/user/dev/app/node_modules\babel\node_mo 
dules\babel-core\lib\babel\generation\index.js:238:22) 
    at NodePrinter.plain (c:/Users/user/dev/app/node_modules\babel\node_modu 
les\babel-core\lib\babel\generation\node\printer.js:16:27) 
    at CodeGenerator.printJoin (c:/Users/user/dev/app/node_modules\babel\nod 
e_modules\babel-core\lib\babel\generation\index.js:286:13) 
    at NodePrinter.sequence (c:/Users/user/dev/app/node_modules\babel\node_m 
odul 

es\babel-core\lib\babel\generation\node\printer.js:23:27) 

根據文檔,它看起來像這應該工作。我是否錯過了一些明顯的東西,或者我應該將此報告爲babel中的錯誤?

回答

2

這是,Babel使用的JSX分析器。建議的修復方法是:

rm -rf node_modules/babel && npm install 
+1

對不起,我應該提到我已經清除了我的node_modules文件夾,並且抓取了最新版本的babel(5.6.3)。我剛纔再試一次,但事情沒有改變。 –

+0

雖然,我很確定感覺像是一個下游依賴問題,很高興看到其他人報告類似的錯誤。它看起來像[email protected]應該解決這個問題,但巴貝爾仍然在我的盒子上拉1.2.2?也許babel需要pin到[email protected]? –

+0

你可以看看'node_modules/babel/node_modules/babel-core/node_modules/acorn-jsx/package.json'中的版本嗎?它應該是'1.0.3'。你碰巧有一個NPM註冊表緩存嗎? – loganfsmyth

相關問題