Skip to content

Commit 39d514c

Browse files
committed
feat: 랜딩페이지 배포 설정
0 parents  commit 39d514c

File tree

100 files changed

+7221
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+7221
-0
lines changed

.gitignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Logs
2+
logs
3+
*.log
4+
npm-debug.log*
5+
yarn-debug.log*
6+
yarn-error.log*
7+
pnpm-debug.log*
8+
lerna-debug.log*
9+
10+
node_modules
11+
dist
12+
dist-ssr
13+
*.local
14+
15+
# Editor directories and files
16+
.vscode/*
17+
!.vscode/extensions.json
18+
.idea
19+
.DS_Store
20+
*.suo
21+
*.ntvs*
22+
*.njsproj
23+
*.sln
24+
*.sw?

.prettierignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Environment variables
5+
.env
6+
.env.*
7+
!.env.example
8+
9+
# Production builds
10+
out/
11+
build/
12+
dist/
13+
14+
# Cache Report
15+
.cache/
16+
.vite/
17+
.vite-cache/
18+
coverage/
19+
tsconfig.tsbuildinfo
20+
21+
# Logs
22+
*.log
23+
npm-debug.log*
24+
yarn-debug.log*
25+
yarn-error.log*
26+
pnpm-debug.log*
27+
lerna-debug.log*
28+
29+
# Lock files
30+
pnpm-lock.yaml
31+
yarn.lock
32+
package-lock.json
33+
34+
# IDE
35+
.idea/
36+
37+
# OS
38+
.DS_Store
39+
Thumbs.db
40+
41+
# swagger-typescript-api templates
42+
src/shared/api/generate/templates/**
43+
*.ejs
44+
45+
README.md

.prettierrc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"arrowParens": "always",
3+
"bracketSpacing": true,
4+
"semi": true,
5+
"singleQuote": false,
6+
"jsxSingleQuote": false,
7+
"printWidth": 80,
8+
"tabWidth": 2,
9+
"useTabs": false,
10+
"endOfLine": "lf",
11+
"quoteProps": "as-needed",
12+
"trailingComma": "es5",
13+
"proseWrap": "preserve",
14+
"singleAttributePerLine": false
15+
}
16+

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Comfit 랜딩페이지 Repo입니다

eslint.config.js

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format
2+
import js from "@eslint/js";
3+
import globals from "globals";
4+
import reactHooks from "eslint-plugin-react-hooks";
5+
import reactRefresh from "eslint-plugin-react-refresh";
6+
import tseslint from "typescript-eslint";
7+
import { defineConfig } from "eslint/config";
8+
import importPlugin from "eslint-plugin-import";
9+
import typescriptParser from "@typescript-eslint/parser";
10+
import eslintConfigPrettier from "eslint-config-prettier";
11+
import react from "eslint-plugin-react";
12+
13+
export default defineConfig([
14+
{
15+
ignores: [
16+
"dist",
17+
"node_modules",
18+
"build",
19+
"*.config.js",
20+
"*.config.ts",
21+
"**/*.ejs",
22+
],
23+
},
24+
25+
importPlugin.flatConfigs.recommended,
26+
importPlugin.flatConfigs.typescript,
27+
js.configs.recommended,
28+
...tseslint.configs.recommended,
29+
reactHooks.configs.flat.recommended,
30+
reactRefresh.configs.vite,
31+
32+
{
33+
files: ["**/*.{ts,tsx}"],
34+
plugins: {
35+
react,
36+
},
37+
settings: {
38+
react: {
39+
version: "detect",
40+
},
41+
"import/resolver": {
42+
typescript: {
43+
alwaysTryTypes: true,
44+
project: "./tsconfig.app.json",
45+
},
46+
},
47+
},
48+
languageOptions: {
49+
ecmaVersion: 2020,
50+
globals: globals.browser,
51+
sourceType: "module",
52+
parser: typescriptParser,
53+
parserOptions: {
54+
ecmaFeatures: {
55+
jsx: true,
56+
},
57+
},
58+
},
59+
rules: {
60+
"no-var": "error", // var 금지
61+
"no-console": ["warn", { allow: ["warn", "error"] }], // console.log 경고
62+
63+
"no-unused-vars": "off", // ts 룰로 대체함
64+
"@typescript-eslint/no-unused-vars": [
65+
// 사용하지 않는 변수 경고
66+
"warn",
67+
{
68+
argsIgnorePattern: "^_",
69+
varsIgnorePattern: "^_",
70+
caughtErrorsIgnorePattern: "^_",
71+
},
72+
],
73+
74+
"@typescript-eslint/consistent-type-imports": [
75+
// type import 사용 권장
76+
"error",
77+
{ prefer: "type-imports" },
78+
],
79+
"@typescript-eslint/no-explicit-any": "warn", // any 사용 경고
80+
"@typescript-eslint/no-non-null-assertion": "warn", // non-null assertion 경고
81+
82+
"react-hooks/rules-of-hooks": "error", // Hooks 규칙 준수
83+
"react-hooks/exhaustive-deps": "warn", // useEffect 의존성 배열 검사
84+
85+
// 화살표 함수 컴포넌트 사용 권장
86+
"react/function-component-definition": [
87+
"warn",
88+
{
89+
namedComponents: "arrow-function",
90+
},
91+
],
92+
// import 정렬 order 설정
93+
"import/order": [
94+
"warn",
95+
{
96+
groups: [
97+
"builtin",
98+
"external",
99+
"internal",
100+
"parent",
101+
"sibling",
102+
"index",
103+
"type",
104+
],
105+
"newlines-between": "always",
106+
alphabetize: { order: "asc", caseInsensitive: true },
107+
},
108+
],
109+
"import/first": "error", // import문 최상단 위치
110+
"import/no-duplicates": "error", // 중복 import 금지
111+
"import/no-unresolved": "off", // TS resolver가 처리
112+
"import/default": "off", // default export 불필요한 경고 제거
113+
"import/prefer-default-export": "off", // named export 사용(최적화 관점)
114+
115+
// Prettier와 충돌 방지
116+
"arrow-body-style": "off",
117+
"prefer-arrow-callback": "off",
118+
},
119+
},
120+
eslintConfigPrettier,
121+
]);

index.html

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/svg+xml" href="/comfit.svg" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Comfit</title>
8+
</head>
9+
<body>
10+
<div id="root"></div>
11+
<script type="module" src="/src/app/main.tsx"></script>
12+
</body>
13+
</html>

package.json

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
{
2+
"name": "comfit-project",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite",
8+
"build": "tsc -b && vite build",
9+
"lint": "eslint .",
10+
"preview": "vite preview"
11+
},
12+
"dependencies": {
13+
"@vanilla-extract/css": "^1.18.0",
14+
"@vanilla-extract/dynamic": "^2.1.5",
15+
"@vanilla-extract/recipes": "^0.5.7",
16+
"@vanilla-extract/vite-plugin": "^5.1.4",
17+
"eslint-import-resolver-typescript": "^4.4.4",
18+
"framer-motion": "^12.27.0",
19+
"react": "^19.2.0",
20+
"react-dom": "^19.2.0",
21+
"react-router-dom": "^7.11.0"
22+
},
23+
"devDependencies": {
24+
"@eslint/js": "^9.39.1",
25+
"@svgr/plugin-svgo": "^8.1.0",
26+
"@tanstack/react-query-devtools": "^5.91.2",
27+
"@types/node": "^24.10.1",
28+
"@types/react": "^19.2.5",
29+
"@types/react-dom": "^19.2.3",
30+
"@typescript-eslint/eslint-plugin": "^8.51.0",
31+
"@typescript-eslint/parser": "^8.51.0",
32+
"@vanilla-extract/vite-plugin": "^5.1.4",
33+
"@vitejs/plugin-react-swc": "^4.2.2",
34+
"eslint": "^9.39.1",
35+
"eslint-config-prettier": "^10.1.8",
36+
"eslint-import-resolver-typescript": "^4.4.4",
37+
"eslint-plugin-import": "^2.32.0",
38+
"eslint-plugin-prettier": "^5.5.4",
39+
"eslint-plugin-react": "^7.37.5",
40+
"eslint-plugin-react-hooks": "^7.0.1",
41+
"eslint-plugin-react-refresh": "^0.4.24",
42+
"globals": "^16.5.0",
43+
"prettier": "3.7.4",
44+
"typescript": "~5.9.3",
45+
"typescript-eslint": "^8.46.4",
46+
"vite": "^7.2.4",
47+
"vite-plugin-svgr": "^4.5.0",
48+
"vite-tsconfig-paths": "^6.0.3"
49+
}
50+
}

0 commit comments

Comments
 (0)