Webpack在本地工作,但不在AWS服务器上

问题描述:

我试图将我的应用程序部署到AWS EC2实例。在我的本地环境中,当我运行webpack时,我可以捆绑一切都没有问题。在我的AWS服务器上,我克隆了我的repo,但是当我运行webpack时,我得到了 SyntaxError: Unexpected token importWebpack在本地工作,但不在AWS服务器上

我刚刚检查过,我的本地服务器和AWS服务器都运行相同的NPM(5.3.0)和节点(8.6.0)版本以及webpack版本(webpack -g)。

我有.babelrc:

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

webpack.config.babel.js:

import path from 'path'; 
import nodeExternals from 'webpack-node-externals'; 

const client = { 
    entry: { 
    js: './src/app-client.js', 
    }, 
    output: { 
    path: path.join(__dirname, 'src', 'static', 'js'), 
    filename: 'bundle.js', 
    }, 
    module: { 
    rules: [ 
     { 
     test: path.join(__dirname, 'src'), 
     use: { 
      loader: 'babel-loader', 
      options: 'cacheDirectory=.babel_cache', 
     }, 
     }, 
    ], 
    }, 
}; 
export default [client]; 

该错误是在webpack.config.babel.js的第一行存在的

/home/ec2-user/FB/webpack.config.babel.js:1 
(function (exports, require, module, __filename, __dirname) { import path from 'path'; 
                   ^^^^^^ 

SyntaxError: Unexpected token import 

为什么它可以在本地而不是AWS上正常工作?任何想法如何解决?谢谢。

PS:我的机器是MacOS和服务器是亚马逊的Linux

import path from 'path'; 
import nodeExternals from 'webpack-node-externals'; 

随着这

var path = require('path'); 
var nodeExternals = require('webpack-node-externals'); 

export default [client]; 

替换为这Ť他的

module.exports = client; 

还要确保本地机器上安装的Webpack版本与您的AWS服务器上的相同。

而且我认为你是在你的.babelrc文件中缺少预设以及

{ 
    "presets" : ["es2015", "react", "stage-2"] 
} 
+0

谢谢,但没有帮助。 (3.5.6)上的Webpack版本都是相同的。 – johnathan777

+0

请看看这个链接,https://github.com/gokulkrishh/how-to-setup-webpack-2也许你错过了一些东西。 –

+0

同样在您的预设中,首先添加es2015然后作出反应,因为它按此顺序编译。看看最新的答案。 –