【问题标题】:cross-env/dist/index.js:42 unexpected token }cross-env/dist/index.js:42 意外令牌 }
【发布时间】:2018-05-23 16:06:04
【问题描述】:

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

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

【问题讨论】:

    标签: node.js laravel npm


    【解决方案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
    

    希望对你有帮助

    【讨论】:

    • 谢谢!像魅力一样工作。 (我感觉这有点像用大锤敲钉子,但它的修复速度足够快,因此非常完美。)
    【解决方案2】:

    就我而言,我必须同时升级 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 没有任何错误。

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 2018-07-28
      • 2019-08-06
      • 2014-11-29
      • 2018-11-19
      • 2017-04-17
      相关资源
      最近更新 更多