# NPM 패키지 마이그레이션 가이드

## Content

**SpreadJS 19버전**부터는 모든 SpreadJS 라이브러리는 새로운 **[@mescius](https://www.npmjs.com/package/@mescius/spread-sheets "https://www.npmjs.com/package/@mescius/spread-sheets")** NPM 스코프에 게시됩니다.
기존 스코프인 **[@grapecity](https://www.npmjs.com/package/@grapecity/spread-sheets "https://www.npmjs.com/package/@grapecity/spread-sheets")** 는 더 이상 업데이트나 유지 관리 되지 않습니다.

>type=note
> **참고**: 모든 @grapecity 패키지는 기존 프로젝트의 경우 NPM에서 계속 사용할 수 있지만 19버전부터는 업데이트 되지 않습니다.

**필수 조치 사항:**
최신 기능, 수정 사항을 지원 받으려면 프로젝트 종속성을 `@grapecity` 에서 `@mescius`로 마이그레이션 해야 합니다.

***

## **1\. 마이그레이션 단계**

프로젝트를 안전하게 업데이트하려면 아래 단계를 따르세요:

### **단계 1. 프로젝트 열기**

1. 코드 편집기(예, **VS Code**)에서 프로젝트 폴더를 실행합니다.
2. 계속 진행하기 전에 백업이나 최근 커밋이 있는지 확인하세요.

### **단계 2. 네임스페이스 참조 업데이트**

모든 항목에 대해 `@grapecity/` 를 `@mescius/`로 변경해야 합니다.
확인이 필요한 두 가지 주요 영역은 다음과 같습니다:

* `package.json`**의 종속성**
* **소스 코드에서 import 명령문**

#### 에디터에서 찾기 및 바꾸기 사용

1. 에디터에서 **찾기 및 바꾸기** 도구를 여세요.( VS Code의 경우 Ctrl + Shifh + F)
2. **찾기** 영역에 입력합니다:

```auto
@grapecity/
```

4. **바꾸기** 영역에 입력합니다:

```auto
@mescius/
```

5. **모두 바꾸기**를 클릭합니다 (또는 원하실 경우 각 변경 사항을 수동으로 검토할 수 있습니다).
6. 모든 수정 파일을 저장합니다.

### **단계 3.** 종속성 업데이트

1. 터미널을 열고 다음을 실행합니다:

```auto
npm install
```

혹은 yarn을 이용한다면:

```auto
yarn install
```

2. 위와 같이 진행하면 `@mescius` 스코프에서 모든 패키지가 다운로드 되어 설치됩니다.

### **단계 4.** 마이그레이션 확인

1. `package.json` 에서 종속성이 다음과 같은지 확인합니다:

```auto
{
  "dependencies": {
    "@mescius/spread-sheets": "^19.0.0"
  }
}
```

2. 다음과 같은 import 명령문이 있는지 코드를 검토합니다:

```auto
import * as GC from "@mescius/spread-sheets";
```

3. 애플리케이션을 실행하고 모든 SpreadJS 기능이 제대로 동작하는지 확인합니다.

### **단계 5.** 정리 (선택 사항)

마이그레이션이 성공적으로 완료되었다면 캐시된 데이터나 오래된 패키지를 제거할 수 있습니다:

```auto
npm prune
npm cache clean --force
```

## **2.** 일반적인 문제 및 문제 해결

| 문제 | 가능 원인 | 해결 방법 |
| --- | ----- | ----- |
| 모듈 오류로 인한 빌드 실패 | `@grapecity` import가 여전히 존재합니다. | 남아있는  `@grapecity/` 참조를 검색하여 바꿉니다. |
| 버전 충돌 | 일치하지 않는 버전 사용 | 모든  `@mescius/spread-*` 패키지가 **동일한 버전을** 사용하는지 확인합니다. |
| TypeScript 유형 오류 | 이전 네임스페이스와 새 네임스페이스 혼합 사용 | `node_modules` 를 삭제하고 새로운 종속성을 사용하여 다시 설치합니다. |

## **3\. 지원**

마이그레이션 과정에서 문제가 발생할 경우 **[MESCIUS 개발자 포럼](https://dev.mescius.co.kr/)** 에서 문의를 남겨 주시기 바랍니다.

***

**새로운** `@mescius` **네임스페이스로 마이그레이션해 주셔서 감사합니다!**
이번 업데이트를 통해 SpreadJS 제품군에 대한 **최신 기능 개선, 보안 업데이트, 그리고 지속적인 유지 관리**를 계속해서 제공받으실 수 있습니다.