정화 코딩

[Node.js] NestJS에서 Biome 사용 시 발생하는 useImportType 오류 본문

Web Development

[Node.js] NestJS에서 Biome 사용 시 발생하는 useImportType 오류

jungh150c 2024. 11. 11. 00:09

문제 상황

// src/semester/semester.repository.ts

import { Injectable } from '@nestjs/common';
import type { PrismaService } from 'src/prisma/prisma.service';
import type { Prisma, Semester } from '@prisma/client';
...
// src/semester/semester.service.ts

import { Injectable } from '@nestjs/common';
import type { SemesterRepository } from './semester.repository';
import type { Prisma, Semester } from '@prisma/client';
import type { CreateSemesterDto } from './dto/create-semester.dto';
import type { UpdateSemesterDto } from './dto/update-semester.dto';
...
// src/semester/semester.controller.ts

import { Controller, Body, Param, Get, Post, Patch, Delete, ParseIntPipe  } from '@nestjs/common';
import type { SemesterService } from './semester.service';
import type { Semester } from '@prisma/client';
import type { CreateSemesterDto } from './dto/create-semester.dto';
import type { UpdateSemesterDto } from './dto/update-semester.dto';

 

원래 코드가 이런식으로 되어 있었다.

Error: Nest can't resolve dependencies of the SemesterService (?). 
Please make sure that the argument Function at index [0] is available in the SemesterModule context.

Potential solutions:
- Is SemesterModule a valid NestJS module?
- If Function is a provider, is it part of the current SemesterModule?
- If Function is exported from a separate @Module, is that module imported within SemesterModule?
  @Module({
    imports: [ /* the Module containing Function */ ]
  })

그러나 실행하면 이런 오류가 발생한다.

찾아본 결과, PrismaService, SemesterRepository, SemesterService는 의존성 주입을 위해 일반 import를 사용해야 하는데, 코드 상으로는 실제로 사용되지 않는 것으로 보여 biome에서 타입으로만 사용되는 것으로 판단하기 때문에 발생하는 오류인 것 같다. 

Biome의 useImportType 관련 내용은 아래에서 확인할 수 있다. 

[참고] https://biomejs.dev/linter/rules/use-import-type/

그래서 일반 import를 사용해야 하기 위해 type을 없애니까 또 위처럼 오류가 난다.

All these imports are only used as types. biome(lint/style/useImportType)

biome에서 발생하는 스타일 관련 오류 메세지였다. 

이렇게 세 파일에서 모두 같은 오류가 발생한다. 

해결 방안

"style": { "useImportType": "off" }

biome.json 파일에 "linter" 부분에 위와 같은 코드를 추가해준다. 

[참고] https://biomejs.dev/linter/rules/

이렇게!

오류 표시가 없어진 걸 확인할 수 있다.

 

Comments