Nest.Js : импорт файлов из внешней папки проекта

#typescript #directory #nestjs

#машинописный текст #каталог #nestjs

Вопрос:

Я начал использовать Nest.Js и я создал приложение с полным стеком с такой структурой:

структура приложения

api : приложение nestjs
client : интерфейсное приложение
models : общие модели (только интерфейсы) между задней и передней

Поэтому я установил путь к псевдониму в tsconfig.json внутренней папке api, чтобы позволить ему импортировать в ближайшее время: import { User } from 'models/user.model'

 {
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "incremental": true, 
    "outDir": "./dist",
    "baseUrl": "./",
    "paths": {
      "models/*": ["../models/*"]
    }
  }
}
  

Проблема в том, что typescript компилирует и изменяет корневую структуру в dist папке, а nest cli не находит main.js файл для запуска приложения.

удаленная папка

Есть ли способ переместить models папку и сохранить структуру nestjs? Или, может быть, измените конфигурацию nestjs, чтобы запустить приложение api/src/main.js ?

Комментарии:

1. Привет, не могли бы вы сказать мне, какой пакет значков вы используете, пожалуйста? 🙂

2. @RyanWeiss Material Icon Theme для vscode

3. Спасибо @Eduardo!

4. @EduardoRosostolato Вы получили ошибку при создании производственного экспорта? потому что paths не работал с производственной сборкой

5. @SayJeyHi Я не продвинулся вперед с этим проектом, и я не пробовал его на производстве, поэтому я не могу этого сказать… Извините.

Ответ №1:

Это то, что typescript делает, когда есть код за пределами корневого src каталога, чтобы убедиться, что после компиляции можно использовать те же пути. Вы можете изменить nest-cli.json и добавить entryFile свойство, чтобы указать Nest, где находится main файл. Кроме того, рассмотрите что-то вроде Nx , чтобы помочь с созданием полноформатных монорепозиций.

Комментарии:

1. Идеально! Я включил "entryFile": "api/src/main" nest-cli.json , и это сработало! Спасибо!

2. Блестяще! Это то, что я ищу! (после долгих поисков и попыток, похожих на безголовую муху …)

3. Просто обратите внимание, что мне также пришлось удалить dist папку, чтобы она правильно обновлялась с paths