Node.js 如何将Nuxt.js部署到Elastic Beanstalk?

Node.js 如何将Nuxt.js部署到Elastic Beanstalk?,node.js,amazon-web-services,deployment,nuxt.js,Node.js,Amazon Web Services,Deployment,Nuxt.js,我是AWS的新手,我一直在关注那里的教程,但找不到答案。所以,我所做的是创建了简单的nuxt应用程序,没有对框架的脚本进行任何更改。我将elastic beanstalk设置为运行node.js设置。然后,我尝试使用应用程序的json文件夹部署我的/dist文件夹(使用nuxt构建),正如每个教程所告诉的那样。但它给了我这个 我认为我部署的文件夹有问题,或者我必须通过aws CLI实际部署,这会有什么不同吗 电子商务日志: ------------------------------------

我是AWS的新手,我一直在关注那里的教程,但找不到答案。所以,我所做的是创建了简单的nuxt应用程序,没有对框架的脚本进行任何更改。我将elastic beanstalk设置为运行node.js设置。然后,我尝试使用应用程序的json文件夹部署我的/dist文件夹(使用nuxt构建),正如每个教程所告诉的那样。但它给了我这个 我认为我部署的文件夹有问题,或者我必须通过aws CLI实际部署,这会有什么不同吗

电子商务日志:

-------------------------------------
/var/log/nodejs/nodejs.log
-------------------------------------
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/.npm/_logs/2019-09-29T16_00_28_939Z-debug.log

> portfolio@1.0.0 start /var/app/current
> cross-env NODE_ENV=production node server/index.js

internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module '/var/app/current/server/index.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)




nodejs日志向我指出构建存在问题、压缩方式存在问题,或者start命令存在问题

最常见的问题是拉链拉得不正确

在Mac OS X Finder或Windows资源管理器中创建ZIP文件时,请确保自己压缩文件和子文件夹,而不是压缩父文件夹

换句话说,不要右键单击dist文件夹并单击“zip”,选择所有文件和文件夹(包括隐藏的文件和文件夹)并将其压缩。Elastic beanstalk和许多其他AWS服务都希望zip能够解压成平面结构,解压时不包含父文件夹


如果这不能解决您的问题,请确保您正在压缩正确的文件夹。尝试删除.nuxt和/dist文件夹,并在本地运行
npm run build
。生成的文件夹(默认为.nuxt)是需要压缩其内容的文件夹。

它引发该错误的原因是因为启动命令以
cross-env
开头。当它看到它试图运行全局安装的包
cross-env
,但它在全局上不可用时,就会抛出该错误。有几种可能的方法可以解决这个问题:

  • 最简单的方法是将start命令更改为使用本地安装版本的
    cross-env
    的相对路径,因此您的命令应该如下所示:

    node\u模块/cross-env/src/bin/cross-env.js节点服务器/index.js

  • 您还可以尝试将
    npx
    添加到命令的前面,如下所示:

    npx cross env NODE\u env=production NODE server/index.js

    这应该是可行的,但我发现有时我会在特定的软件包中出现错误,我可以说这是npx的一个错误,但我还没有时间去研究它。值得注意的是,我确实在nuxt js应用程序中看到了这个bug,因此您可能也会看到,但是我使用的是nuxt cli,而您不是

  • 第三种选择是,您可以考虑使用ebextensions全局安装包。在我的工作中,我没有遇到过这样的情况
    你需要添加一些你正在做的事情的例子。使用nuxt start或nuxt generate运行的生成命令、EB日志?您提供的屏幕截图可能有很多种情况,例如您的反向代理没有正确地转发请求、引用了错误的构建文件夹,或者压缩了dist文件夹的内容incorrectly@user27请共享您的代码文件夹层次结构,您正在elasticbeanstalk上上载。