Webpack在本地工作,但不在AWS服务器上
问题描述:
我试图将我的应用程序部署到AWS EC2实例。在我的本地环境中,当我运行webpack
时,我可以捆绑一切都没有问题。在我的AWS服务器上,我克隆了我的repo,但是当我运行webpack时,我得到了 SyntaxError: Unexpected token import
。Webpack在本地工作,但不在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"]
}
谢谢,但没有帮助。 (3.5.6)上的Webpack版本都是相同的。 – johnathan777
请看看这个链接,https://github.com/gokulkrishh/how-to-setup-webpack-2也许你错过了一些东西。 –
同样在您的预设中,首先添加es2015然后作出反应,因为它按此顺序编译。看看最新的答案。 –