当我尝试运行在Nx工作区中创建的NestJS应用程序的构建工件时,我遇到了错误。仅当我在存储库之外不存在node_modules文件夹的任何地方运行结果工件时,才会发生错误。
复制步骤:
npm install
以安装所有软件包ng build backend
dist/apps/backend
中的dist文件夹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',
}
您还可以尝试在Docker容器中运行构建工件,这将导致相同的错误。
谁能告诉我问题是什么以及如何解决?提前非常感谢!
答案 0 :(得分:0)
您的NestJs
应用具有tslib
模块依赖性(至少,甚至还有几个)。
因此,您还应该部署具有所需依赖项的package.json
。
为此,您可以从package.json
复制主开发nx workspace
的精确副本,也可以将仅依赖项的特定副本用于已部署的目标。 (以避免您的生产托管环境加载大量无用的库)。
并且不要忘记在启动npm install
应用之前调用NestJs
。