2017-04-15 58 views
1

我正在嘗試使用react-native和react-native-weback-server。SyntaxError在react-native中加載launchChrome.js

當我運行rnws start我得到node_modules/react-native/local-cli/server/util/launchChrome.js:15

function getChromeAppName(): string { 
         ^
SyntaxError: Unexpected token : 

望着該文件一個SyntaxError,我看到的方法:

function getChromeAppName(): string { 
    switch (process.platform) { 
    case 'darwin': 
    return 'google chrome'; 
    case 'win32': 
    return 'chrome'; 
    default: 
    return 'google-chrome'; 
    } 
} 

但是這不符合我的節點版本(7.9.0 )。我不知道這是什麼版本的JavaScript,這是有效的語法,如果我使用正確的babel transpiler。

這裏是我的NPM的依賴關係:

"dependencies": { 
    "babel-core": "^6.24.1", 
    "babel-loader": "^6.4.1", 
    "babel-plugin-transform-react-jsx": "^6.24.1", 
    "babel-preset-es2016": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "coffee-loader": "^0.7.3", 
    "coffee-script": "^1.12.5", 
    "react": "^15.5.4", 
    "react-dom": "^15.5.4", 
    "react-native": "^0.43.3", 
    "react-native-webpack-server": "^0.9.3", 
    "webpack": "^2.4.1", 
    "webpack-dev-server": "^2.4.2" 
    } 

和webpack.config.js

var path = require('path'); 
var webpack = require('webpack'); 
module.exports = { 
    entry: './app.coffee', 
    output: { filename: 'bundle.js' }, 
    module: { 
    loaders: [ 
     { 
     test: /.jsx?$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/, 
     query: { 
      presets: ['es2016', 'react'] 
     } 
     }, 
     { 
     test: /\.coffee$/, 
     loader: "coffee-loader" 
     } 
    ] 
    }, 
}; 

回答

0

這是Flow

流語法文件通常在頭部有@flow註釋,如您所見this file does

a Babel plugin來啓用解析此語法。

+0

我添加了babel-plugin-syntax-flow並將其放入babelrc中,但錯誤仍在發生。有什麼我必須改變與webpack文件? –

+0

@maxple我不確定。您是否嘗試在'query'選項中添加'plugins:[「syntax-flow」]'? –

+0

你是什麼意思'查詢選項'?我只是把'{「plugins」:[「syntax-flow」]}'放在babelrc中 –