2017-03-22 62 views
0

,安裝有進口反應,並在應用程序js文件的起始反應路由器的包,但得到這個錯誤:意外的保留字「進口」反應生成應用程序的NodeJS

(function (exports, require, module, __filename, __dirname) { import React from 'react'; 
                   ^^^^^^ 
SyntaxError: Unexpected reserved word 

在我app.js文件:

import React from 'react'; 
import ReactDOM from 'react-dom'; 
import { 
    BrowserRouter as Router, 
    Route, 
    Link 
} from 'react-router-dom'; 

var express = require('express'), 
... 
+0

'import'語句只能出現在頂級作用域。你不能在一個函數中導​​入。 –

+0

@jared我在我的文件的頂部導入,沒有導入一個函數 – Jon

+0

*在您發佈的代碼中的錯誤*它顯示了一個可能由代碼轉換器應用的包裝函數*中的導入語句*。它的*代碼運行*重要,而不是你最初寫的。 –

回答

0

你你是ES2015,你需要像巴貝爾這樣的翻譯。

得到這個工作,你首先需要安裝一些軟件包:

$ npm install --save-dev babel-core babel-preset-es2015 babel-preset-react 

接下來,添加以下到您的package.json:

"babel": { 
    "presets": [ "es2015", "react" ] 
} 

或者,如果你不這樣做有一個package.json,在工作目錄中創建一個名爲.babelrc的文件,其中包含以下內容:

{ 
    "presets": [ "es2015", "react" ] 
} 

注意

這不是一個確切的重複,但它有與this職位相同的答案。感謝「robertklep」的答案。

UPDATE

如果您正在使用的WebPack,請確保您是通過模塊加載器加載巴貝爾。

module: { 
    loaders: [ 
     { 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-0'] 
     }, 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/ 
     }, 
} 
+0

我確實安裝了babel和所有其他軟件包,但它仍然無法正常工作:/並且我添加了上面的代碼 – Jon

+0

您使用的是Webpack嗎? – alireza

+0

是的,使用webpack。但我還沒有生成捆綁js文件。還在package.json中添加了「babel」:「babel」,「webpack」:「webpack」腳本 – Jon

相關問題