bau*_*arb 5 node.js nrwl nestjs nrwl-nx
当我尝试运行在 Nx 工作区中创建的 NestJS 应用程序的构建工件时遇到错误。仅当我在不存在 node_modules 文件夹的存储库之外的任何位置运行生成的工件时,才会发生该错误。
重现步骤:
npm install
以安装所有软件包ng build backend
dist/apps/backend
node main.js
在该文件夹中运行,您应该看到后端成功启动/tmp
或c:\temp
)node main.js
在新位置再次运行,您将遇到以下错误:internal/modules/cjs/loader.js:775
throw err;
^
Error: Cannot find module 'tslib'
Require stack:
- /home/bernhard/main.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:772:15)
at Function.Module._lo[ad (internal/modules/cjs/loader.js:677:27)
at Module.require (internal/modules/cjs/loader.js:830:19)
at require (internal/modules/cjs/helpers.js:68:18)
...[omitted for brevity] {
code: 'MODULE_NOT_FOUND',
}
Run Code Online (Sandbox Code Playgroud)
您也可以尝试在 Docker 容器中运行构建工件,它会导致相同的错误。
谁能告诉我问题是什么以及如何解决它?非常感谢!
我在 Nx 工作区中为 Nestjs 应用程序构建 Docker 映像时遇到了这个问题。
我做了以下解决方法:
# BUILD
FROM node:16.11.1-slim as build
WORKDIR /app/nx
COPY nx /app/nx
RUN npm install -g nx@13.1.3 && \
npm install && \
nx build backend
# SERVE
FROM node:16.11.1-slim
ARG NODE_ENV=production
ENV NODE_ENV=${NODE_ENV}
WORKDIR /app/backend
COPY --from=build /app/nx/dist/apps/backend /app/backend
RUN npm install \
tslib@2.3.1 \
@nestjs/common@7.6.18 \
@nestjs/core@7.6.18 \
@nestjs/platform-express@7.6.18 \
@nestjs/axios@0.0.3
EXPOSE 3333
CMD ["node", "/app/backend/main"]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1204 次 |
最近记录: |