我正在尝试将我的应用程序部署到AWS EC2实例。在我的本地环境中,我可以在运行webpack
时捆绑所有内容。在我的AWS服务器上,我克隆了我的仓库,但是当我运行webpack时,我得到了
SyntaxError: Unexpected token import
。
我刚检查过,我的本地和AWS服务器都运行相同的NPM(5.3.0)和Node(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,服务器是Amazon linux
答案 0 :(得分:1)
将其替换为
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"]
}