node.js – cross-env / dist / index.js:42意外令牌}

一点背景:我正在开发一个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"
    }
}

我在部署到AWS时在npm run production上失败,并出现以下错误:

[stderr]/usr/lib/node_modules/cross-env/dist/index.js:42
[stderr]    });
[stderr]    ^
[stderr]SyntaxError: Unexpected token }

可能导致此问题的原因是什么?我该如何解决?我非常怀疑cross-env中存在语法错误.

最佳答案 我遇到了同样的问题,我可以通过更新节点并重新安装npm来修复它.

对我有用的步骤:

使用包管理器更新节点:

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

然后全新安装:

rm -rf node_modules && npm cache clean --force && npm install

希望能帮助到你

点赞