2016-08-03 44 views
3

我正在處理反應應用程序。我在哪裏使用webpack和babel loader。 在我的反應應用程序中,我使用導入語句很多次,這是正常工作。未捕獲的SyntaxError:`意外的令牌導入

現在我有我的另一個獨立的應用程序工作正常。 現在我正在使用npm在反應應用程序中安裝我的獨立應用程序。所以我做

let standAloneApplication = require("my_stand_alone_application") 

但我在standAloneApplication中得到導入錯誤。我在哪裏有一條線 import controller from "./controller" // Main.js:1Uncaught SyntaxError:意外的令牌導入

其中在React應用程序中的導入語句正常工作。獨立應用程序也可以單獨運行。但同時它給人的SyntaxError

從獨立的應用程序我的WebPack文件

var webpack = require('webpack'); 
var path = require('path'); 

var BUILD_DIR = path.resolve(__dirname, 'html'); 
var APP_DIR = path.resolve(__dirname, 'html'); 

var config = { 
    entry: APP_DIR + '/app.js', 
    output: { 
    path: BUILD_DIR, 
    filename: 'bundle.js' 
    }, 
    devtool: "source-map", 
    node: { 
    fs: "empty" 
    } , 
     module : { 
    loaders : [ 
     { 
     test : /\.js?/, 
     include : APP_DIR, 
     exclude: /node_modules/, 
     loaders: ['babel?presets[]=react,presets[]=es2015,plugins[]=transform-decorators-legacy,plugins[]=transform-class-properties,plugins[]=transform-export-extensions'], 
     }, 

     { test: /\.json$/, loader: "json" } 
    ] 
    } 
} 

module.exports = config; 

main.js代碼

import {Controller} from "./Controller/index.js" 

export class Main() { 

} 
+0

你能嘗試使用一個文件.babelrc,內容如下: { 「預設」: 「es2015」,「react」] },我認爲你的path.resolve不應該是'htlm' –

+0

不應該有';'從'./Controller/index.js 「'? (只是想知道) –

+0

如果es2015運行正常,是可選的 –

回答

4

發現在你的裝載機安裝的exclude: /node_modules/

由於您使用npm安裝了您的應用程序/模塊,它位於該目錄中,並且由於排除它將不會被Babel轉發。

也許吧,但我不知道,你可以明確地將其添加到include行:

include : [ 
    APP_DIR, 
    path.resolve(__dirname, 'node_modules/my_stand_alone_application') 
] 
+0

像魅力一樣工作 –

+0

這也適用於我,但更好的解決方案是在我的庫上設置並運行構建(或Ashisha的獨立 - 應用程序),其中包括與巴貝爾編譯es6。然後,'dist'版本將可以按照原樣使用,就像任何其他npm軟件包一樣。 – seanTcoyote

相關問題