Skip to content

Commit 21f7734

Browse files
committed
feat: @types/node 추가 및 경로 별칭 설정
1 parent 96a5a86 commit 21f7734

File tree

5 files changed

+55
-25
lines changed

5 files changed

+55
-25
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
},
3030
"devDependencies": {
3131
"@eslint/js": "^9.21.0",
32+
"@types/node": "^22.15.3",
3233
"@types/react": "^19.0.10",
3334
"@types/react-dom": "^19.0.4",
3435
"@typescript-eslint/parser": "^8.29.1",

pnpm-lock.yaml

Lines changed: 27 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/components/layout/Footer/index.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import styled from "@emotion/styled";
2-
import { useEmail } from "../../../hooks/useEmail";
3-
import MessageIcon from "../../../assets/Footer/message.svg?react";
4-
import FacebookIcon from "../../../assets/Footer/facebook.svg?react";
5-
import YoutubeIcon from "../../../assets/Footer/youtube.svg?react";
6-
import XIcon from "../../../assets/Footer/x.svg?react";
7-
import GithubIcon from "../../../assets/Footer/github.svg?react";
8-
import InstagramIcon from "../../../assets/Footer/instagram.svg?react";
9-
import LinkedinIcon from "../../../assets/Footer/linkedin.svg?react";
10-
import BlogIcon from "../../../assets/Footer/blog.svg?react";
11-
import FlickrIcon from "../../../assets/Footer/flickr.svg?react";
2+
import { useEmail } from "@/hooks/useEmail";
3+
import MessageIcon from "@/assets/Footer/message.svg?react";
4+
import FacebookIcon from "@/assets/Footer/facebook.svg?react";
5+
import YoutubeIcon from "@/assets/Footer/youtube.svg?react";
6+
import XIcon from "@/assets/Footer/x.svg?react";
7+
import GithubIcon from "@/assets/Footer/github.svg?react";
8+
import InstagramIcon from "@/assets/Footer/instagram.svg?react";
9+
import LinkedinIcon from "@/assets/Footer/linkedin.svg?react";
10+
import BlogIcon from "@/assets/Footer/blog.svg?react";
11+
import FlickrIcon from "@/assets/Footer/flickr.svg?react";
1212

1313
interface LinkItem {
1414
text: string;
@@ -89,17 +89,18 @@ export default function Footer({
8989
))}
9090
</FooterLinks>
9191
<FooterIcons>
92-
<IconLink onClick={sendEmail}>
93-
<MessageIcon width={20} height={20} />
92+
<IconLink onClick={sendEmail} aria-label="이메일 보내기">
93+
<MessageIcon width={20} height={20} aria-hidden="true" />
9494
</IconLink>
9595
{icons.map((icon) => (
9696
<IconLink
9797
key={icon.alt}
9898
href={icon.href}
9999
target="_blank"
100100
rel="noopener noreferrer"
101+
aria-label={`${icon.alt}로 이동`}
101102
>
102-
<icon.icon width={20} height={20} />
103+
<icon.icon width={20} height={20} aria-hidden="true" />
103104
</IconLink>
104105
))}
105106
</FooterIcons>

tsconfig.app.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,13 @@
2121
"noUnusedParameters": true,
2222
"noFallthroughCasesInSwitch": true,
2323
"noUncheckedSideEffectImports": true,
24-
"forceConsistentCasingInFileNames": false
24+
"forceConsistentCasingInFileNames": false,
25+
26+
/* Paths */
27+
"baseUrl": ".",
28+
"paths": {
29+
"@/*": ["src/*"]
30+
}
2531
},
2632
"include": ["src", "emotion.d.ts"]
2733
}

vite.config.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,15 @@ import { defineConfig } from "vite";
22
import react from "@vitejs/plugin-react";
33
import mdx from "@mdx-js/rollup";
44
import svgr from "vite-plugin-svgr";
5+
import path from "path";
56

67
// https://vitejs.dev/config/
78
export default defineConfig({
89
plugins: [react(), mdx(), svgr()],
910
base: "/",
11+
resolve: {
12+
alias: {
13+
"@": path.resolve(__dirname, "./src"),
14+
},
15+
},
1016
});

0 commit comments

Comments
 (0)