一些背景知识:我正在开发 Laravel 5 应用程序。我正在使用 Homestead(使用 Vagrant/VirtualBox)在 Windows 7 上进行本地开发,并通过 CodePipeline 部署到 Amazon EC2 实例。
在尝试让 Laravel Mix 在本地工作时,我一直遇到各种错误,最终导致我找到了全局安装 cross-env 的解决方案,而不是将其包含在 package.json
的 devDependencies 中>。当然,这也意味着我的 Amazon 部署也需要更新为该设置。除了解释在我的部署中全局安装了 cross-env 之外,这些都没有真正相关,以防相关。
我的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 }
是什么导致了这个问题?我该如何解决?我非常怀疑 cross-env 中实际上存在语法错误。
最佳答案
我遇到了同样的问题,我可以通过更新 Node 并重新安装 npm 来解决它。
对我有用的步骤:
使用包管理器更新 Node :
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
然后全新安装:
rm -rf node_modules && npm cache clean --force && npm install
希望对你有帮助
关于node.js - 跨环境/dist/index.js :42 unexpected token },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47730815/