【问题标题】:Error starting Nuxt.js app: No build files found启动 Nuxt.js 应用程序时出错:未找到构建文件
【发布时间】:2021-07-03 07:44:11
【问题描述】:
$ npm run start

> app@1.2.3 start /home/app/ui/web
> nuxt start

FATAL  No build files found in /home/app/ui/web/.nuxt/dist/server.
Use either `nuxt build` or `builder.build()` or start nuxt in development mode.

在多阶段构建的 Docker 映像中启动 Nuxt.js 应用时发生错误:

  1. npm ci && npm run build 在构建阶段图像中
  2. 将构建的应用程序.nuxt,以及package.jsonnode_modules 复制到运行阶段映像中

有关环境的一些细节。

Nuxt.js 应用模式是“spa”。丢失的文件确实存在于最终映像中,没有使用卷/挂载。构建阶段和运行阶段映像之间的操作系统用户名不同,但是(希望)情况并非如此。

Nuxt.js 2.12.2,Node.js 14.16.0。

【问题讨论】:

  • 您能否提供minimal reproducible example,包括您的Dockerfile 以及您是如何启动容器的?特别是,您是用卷还是绑定挂载覆盖图像的代码?
  • @DavidMaze 感谢您的快速回答,我找到了根本原因并使用环境详细信息更新了问题。非常感谢!

标签: docker nuxt.js nuxtjs


【解决方案1】:

nuxt.config.js 不见了。

在我将它复制到运行阶段映像中并从localhost 切换到0.0.0.0 后,server.host 属性在nuxt.config.js 内,容器运行良好:

> app@1.2.3 start /home/app/ui/web
> nuxt start

ℹ Listening on: http://172.17.0.2:3000/

因此,在服务器部署模式下运行产品构建所需的项目(看似)如下:

/.nuxt
/node_modules
nuxt.config.js
package.json

文档对于最终工件应包含的内容有些模糊: https://nuxtjs.org/docs/2.x/get-started/commands/#server-deployment

激发故障排除的另一个 SO 问题: Nuxt deployment error: server resources are not available

更新

将 Nuxt 更新到 2.15.3,从临时 npm 构建切换到通过 yarn 的可重现构建。

构建阶段已变为yarn install --frozen-lockfile && yarn build。此外,将node_modules 从构建阶段复制到运行阶段会将开发依赖项带入 prod,Nuxt 应用程序的 b/c prod 构建需要开发依赖项。因此,在运行阶段,切换到yarn install --frozen-lockfile --production=true,而不是从之前的构建阶段复制node_modules

因此,从构建阶段复制的用于在服务器部署模式 (https://nuxtjs.org/docs/2.x/features/deployment-targets/#server-hosting) 中运行 prod Nuxt 应用程序所需的项目如下:

/.nuxt
nuxt.config.js
package.json
yarn.lock

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-23
    • 2012-04-04
    • 1970-01-01
    相关资源
    最近更新 更多