Я сталкиваюсь с ошибками при попытке запустить артефакт сборки приложения NestJS, созданного в рабочей области Nx.Ошибка возникает только тогда, когда я запускаю полученный артефакт в любом месте за пределами хранилища, где не существует папки node_modules.
Шаги для воспроизведения:
- Клонируйте этот репозиторий 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, это приведет к той же ошибке.
Вот также сравнение между моей локальной машиной и WSL:
Может кто-нибудь сказать мне, в чем проблема и как ее исправить?Заранее большое спасибо!