当我尝试运行在 Nx 工作区中创建的 NestJS 应用程序的构建工件时,我遇到了错误。仅当我在不存在 node_modules 文件夹的存储库之外的任何地方运行生成的工件时,才会发生该错误。
重现步骤:
- 克隆这个 repo https://github.com/baumgarb/proxy-example
- 运行
npm install
以安装所有软件包 - 跑
ng build backend
- 进入 dist 文件夹
dist/apps/backend
- 在该文件夹中运行
node main.js
,您应该会看到后端成功启动 - 现在将 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 容器中运行构建工件,这将导致相同的错误。
谁能告诉我问题是什么以及如何解决?提前非常感谢!