Project: ๐ฉcodefolio - toast ui Editor(codeSyntaxHighlightPlugin) ์ ์ฉ ์ค ์๋ฌ ๋ ธํธ
Next ๊ฐ๋ฐ ํ๊ฒฝ devDependencies ์ดํดํ๊ณ ๊ธฐ๋ก ๋จ๊ธฐ๊ธฐ
- ๋ชจ๋ ์ค์น ํ ์๊ธฐ๋ ํ์ ์๋ฌ, import not found
1. Vercel Deployment Status Building Errorโ
์ฐ๋ฆฌ ํ๋ก์ ํธ๋ vercel์ ์ฌ์ฉํ์ฌ deploy๋ฅผ ํ๋ค. ์ฒซ init์ ํ ํ, vercel ์ ๊นํ๋ธ๊ฐ ์ฐ๋์ด ๋๋ฉด
์น์ ํ๊ฒ๋ vercel์ ์๋์ผ๋ก commit์ ๋ํ ๋ณ๋์ ์ธ์ํ๊ณ ํด๋น ๋ด์ฉ์ผ๋ก build๋ฅผ ํด์ done ์ด ๋๋์ง์ ์ฌ๋ถ๋ฅผ ์๋ ค์ค๋ค.
ํ์ง๋ง ์ค๋ ์ปค๋ฐ์์ building ์๋ฌ๊ฐ ๋ฌ๋๋ฐ, import๋ฅผ ํ๋ ์ปดํฌ๋ํธ๋ 2๊ฐ ์์ผ๋ 1๊ฐ์ ์ปดํฌ๋ํธ์๋ง ์๋ฌ๊ฐ ๋์ ์ ๊ทธ๋ฐ์ง ์ดํด๊ฐ ์๋์๋ค..
์์นญ ํ typescript ๋น๋ฉ์ด ๋์ง ์๋ ๋ฌธ์ ์๊ณ
Failed to compile.
Type error: Could not find a declaration file for module 'prismjs'. '/vercel/path0/node_modules/prismjs/prism.js' implicitly has an 'any' type.
Try `npm i --save-dev @types/prismjs` if it exists or add a new declaration (.d.ts) file containing `declare module 'prismjs';`
์ ๊ฐ์ ์๋ฌ๋ฅผ ๋ง๋ค์๋ค
+ ์ค๋ฅ : ์ฒซ๋ฒ์งธ ์๋ ๋ฐฉ๋ฒโ
์ ์๋ฌ์ ๋์์๋ ๋ฐฉ๋ฒ๋๋ก ์๋๋ฅผ ํ๋ค. ์ฐ๋ฆฌ๋ ํจํค์ง ๋งค๋์ ๋ก yarn์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
yarn add @type/prismjs
๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด package.json ์ ์ถ๊ฐ๋ ๊ฒ์ ํ์ธ ํ์ผ๋
AS-IS
import { Viewer } from "@toast-ui/react-editor";
import codeSyntaxHighlightPlugin from "@toast-ui/editor-plugin-code-syntax-highlight";
import Prism from "prismjs"; // ๋ชจ๋ 'prismjs'์ ๋ํ ์ ์ธ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ...
๋ชจ๋ 'prismjs'์ ๋ํ ์ ์ธ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ผ๋ ๋ฉ์ธ์ง์ ํจ๊ป ์ธ์ํ์ง ๋ชปํ๋ค..
+ ์ค๋ฅ : ๋๋ฒ์งธ ์๋ ๋ฐฉ๋ฒโ
tsconfig.json ํ์ผ์ ๊ฒฝ๋ก ์ค์ ์ ํด์ฃผ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ๊น? ๋ผ๋ ์๊ฐ์
{
"compilerOptions": {
"typeRoots" : ["./@types", "./node_modules/@types"]
},
}
ํ์ผ์ ์ ๊ตฌ๋ฌธ์ ์ถ๊ฐํ๋ค.
ํ์ง๋ง ์๋ฌด๋ฐ ์ผ๋ ์ผ์ด๋์ง ์์๊ณ , ๋ฌธ์ ์ธ์์ ํ๋ค..
+ ์ค๋ฅ : ์ธ๋ฒ์งธ ์๋ ๋ฐฉ๋ฒโ
๋ฌธ์ ๋ package.json ์ด์๋ค.
next๋ dev ํ๊ฒฝ์์ ์คํ๋๋ฉฐ, typescript๋ ์ปดํ์ผ ์ ์ ์ํ์ด๊ธฐ ๋๋ฌธ์
"dependencies": {
"prismjs": "^1.29.0"
},
dependencies ์ ์๋ ํจํค์ง๋ฅผ
"devDependencies": {
"@types/prismjs": "^1.26.0"
}
devDependencies ๋ก ์ด๋ํด์ฃผ์ด์ผ ์ธ์ํ ์ ์๋ ์ํ๊ฐ ๋๋ค.
AS-IS
import Prism from "prismjs"; // ์๋ฌ: ๋ชจ๋ 'prismjs'์ ๋ํ ์ ์ธ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค.
TO-BE
import { Viewer } from "@toast-ui/react-editor";
import codeSyntaxHighlightPlugin from "@toast-ui/editor-plugin-code-syntax-highlight";
import Prism from "prismjs"; // ์๋ฌ ์์
- next๋ dev ํ๊ฒฝ์์ ๊ฐ๋ฐ ํ๊ณ ์๋ค๋ ๊ฒ์ ํญ์ ์ธ์งํ์.
devDependencies์ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์ด๋ก๋ ๋์์ ํฌํจ๋์ง ์๊ณ ๊ฐ๋ฐํ๊ฒฝ, ๋น๋์ ์ฌ์ฉ๋๋ค.
