当我尝试在Nx工作区中创建的NestJS应用程序的构建产物在无node_modules文件夹的存储库之外的任何地方运行时,我遇到了错误。
复现步骤:
- 克隆此存储库https://github.com/baumgarb/proxy-example
- 运行
npm install
以安装所有包 - 运行
ng build backend
- 进入
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容器中运行构建工件,但会导致相同的错误。
这是我本地机器和WSL之间的比较:
有人能告诉我问题所在以及如何解决吗?非常感谢!