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

时间:2017-12-09 16:49:05

标签: node.js laravel npm

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

可能导致此问题的原因是什么?我该如何解决?我非常怀疑在交叉环境中实际上语法错误。

2 个答案:

答案 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,没有任何错误。