一点背景:我正在开发一个Laravel 5应用程序。我正在使用Homestead(使用Vagrant / VirtualBox)在Windows 7上进行本地开发,并通过CodePipeline部署到Amazon EC2实例。
在尝试让Laravel Mix在本地运行时,我不断遇到一些错误,最终导致我在全局范围内安装cross-env而不是将其包含在package.json
中的devDependencies中。当然,这也意味着我的亚马逊部署也需要更新到该设置。除非解释在我的部署中全局安装了交叉环境,否则这些都不是真正相关的。如果相关的话。
我的package.json
:
{
"private": true,
"scripts": {
...
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.16.2",
"bootstrap-sass": "^3.3.7",
"jquery": "^3.1.1",
"laravel-mix": "^1.0",
"lodash": "^4.17.4",
"vue": "^2.1.10"
}
}
我在npm run production
上部署到AWS失败,并出现以下错误:
[stderr]/usr/lib/node_modules/cross-env/dist/index.js:42
[stderr] });
[stderr] ^
[stderr]SyntaxError: Unexpected token }
可能导致此问题的原因是什么?我该如何解决?我非常怀疑在交叉环境中实际上语法错误。
答案 0 :(得分:1)
我遇到了同样的问题,我可以通过更新节点并重新安装npm来修复它。
对我有用的步骤:
使用包管理器更新节点:
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
然后全新安装:
rm -rf node_modules && npm cache clean --force && npm install
希望有所帮助
答案 1 :(得分:0)
就我而言,我必须同时升级nodejs和npm:
wget https://nodejs.org/dist/v6.9.2/node-v6.9.2-linux-x64.tar.xz
tar -C /usr/local --strip-components 1 -xJf node-v6.9.2-linux-x64.tar.xz
然后我运行npm install
,没有任何错误。