Skip to content

Commit c3794f9

Browse files
committed
최신화
1 parent a504af2 commit c3794f9

15 files changed

+441
-442
lines changed

.eslintrc.json

+9-3
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@
3636
"quotes": ["error", "single"],
3737
"arrow-body-style": "error",
3838
"no-console": "error",
39+
"yoda": "off",
3940

4041
"react/react-in-jsx-scope": "off",
4142
"react/require-default-props": "off",
4243
"react/jsx-props-no-spreading": "off",
4344
"react/prefer-read-only-props": "error",
45+
"react/no-danger": "off",
4446

4547
"react-hooks/exhaustive-deps": "off",
4648

@@ -51,6 +53,7 @@
5153
"etc/no-internal": "off",
5254

5355
"unicorn/prefer-top-level-await": "off",
56+
"unicorn/filename-case": "off",
5457
"unicorn/no-unreadable-array-destructuring": "off",
5558
"unicorn/no-null": "off",
5659

@@ -61,8 +64,11 @@
6164
"error",
6265
{ "fixStyle": "inline-type-imports" }
6366
],
64-
"@typescript-eslint/method-signature-style": "error",
65-
66-
"tailwindcss/no-custom-classname": "off"
67+
"@typescript-eslint/method-signature-style": "error"
68+
},
69+
"settings": {
70+
"tailwindcss": {
71+
"cssFiles": ["./app/_styles/global.css"]
72+
}
6773
}
6874
}

.npmrc

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
registry=https://registry.npmjs.org/
21
enable-pre-post-scripts=true

README.md

+22-42
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,34 @@
1-
# Next.js Boilerplate
2-
3-
> This is a boilerplate for Next.js. It is a simple and minimal boilerplate that can be easily customized.
4-
5-
## Philosophy
6-
7-
- **Minimal**. minimal and has only the necessary features.
8-
- **Strict**. Linting and formatting are strictly enforced.
9-
- **Customizable**. can be easily customized.
10-
- **Up-to-date**. up-to-date and uses the latest version of Next.js.
1+
# Web Template
112

123
## Features
134

14-
- Next.js
15-
16-
- `/app` Router
17-
- Bundle Analyzer
18-
19-
- TypeScript
20-
21-
- Strict Mode
22-
23-
- Style
24-
25-
- postcss
26-
- tailwindcss
27-
28-
- SEO Support
5+
### 🌳 Common
296

30-
- next-sitemap
31-
- next-seo
7+
- [x] TypeScript
8+
- [x] React v18
9+
- [x] Next.js v14
3210

33-
- Formatters, Linters
11+
### ⌨️ Develop
3412

35-
- Eslint
36-
- Prettier
13+
- [x] ESLint
14+
- [x] Prettier
15+
- [x] Husky
16+
- [x] Lint Staged
17+
- [x] Vercel Analytics
3718

38-
- Dev Tools
19+
### 👗 Style
3920

40-
- Husky
41-
- Lint staged
21+
- [x] Post CSS
22+
- [x] Tailwind CSS
23+
- [x] Autoprefixer
24+
- [x] CSS Nano
25+
- [x] Daisy UI
26+
- [x] CLSX
4227

43-
- Deployment Support
28+
### 🔎 SEO
4429

45-
- Vercel Analytics
30+
- [x] Next Sitemap
4631

47-
## Getting Started
32+
### ⚒️ Tool
4833

49-
1. Fork this template repository
50-
2. Clone your forked repository
51-
3. Customize `name` in `package.json`
52-
4. Customize `siteUrl` in `next-sitemap.config.js`
53-
5. Overwrite favicon file in `src/app/favicon.ico` (optional)
54-
6. Install dependencies
34+
- [x] Dayjs
File renamed without changes.

src/styles/global.css app/_styles/global.css

+3-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
2-
@import "tailwindcss/base";
3-
4-
@import "tailwindcss/components";
5-
6-
@import "tailwindcss/utilities";
7-
1+
@tailwind base;
2+
@tailwind components;
3+
@tailwind utilities;
84

95
@layer components {
106
.text-shadow-3 {
File renamed without changes.

src/app/layout.tsx app/layout.tsx

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import type { ReactNode } from 'react';
22

33
import { Analytics } from '@vercel/analytics/react';
44

5-
import { firaMono } from '~/styles/font';
6-
import '~/styles/global.css';
5+
import { firaMono } from '~/_styles/font';
6+
import '~/_styles/global.css';
77

88
interface Properties {
99
readonly children: ReactNode;
@@ -20,7 +20,7 @@ function RootLayout({ children }: Properties) {
2020
className={`${firaMono.variable} overscroll-none`}
2121
lang="ko"
2222
>
23-
<body className="flex min-h-screen flex-col items-center overscroll-none bg-background font-monospace text-stone-200 selection:bg-lime-900 selection:text-stone-50">
23+
<body className="flex min-h-screen flex-col items-center overscroll-none font-monospace text-stone-200 selection:bg-lime-900 selection:text-stone-50">
2424
{children}
2525
<Analytics />
2626
</body>

src/app/page.tsx app/page.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import ClientComponent from '~/app/components/ClientComponent';
1+
import ClientComponent from '~/_components/ClientComponent';
22

33
function Index() {
44
return (

lint-staged.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
module.exports = {
22
'*.{ts,tsx}': ['eslint --fix', 'eslint'],
3+
'**/*.ts?(x)': () => 'npm run check',
34
'*.{json}': ['prettier --write'],
45
};

next.config.js next.config.mjs

File renamed without changes.

package.json

+28-25
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,57 @@
11
{
2-
"name": "nextjs-boilerplate",
2+
"name": "web-template",
33
"version": "0.1.0",
44
"private": true,
55
"scripts": {
6-
"dev": "next dev",
6+
"analyze": "ANALYZE=true next build",
77
"build": "next build",
8-
"start": "next start",
9-
"lint": "next lint",
108
"postbuild": "next-sitemap",
11-
"analyze": "ANALYZE=true next build",
129
"check": "tsc --noEmit --pretty",
13-
"prepare": "husky install"
10+
"dev": "next dev",
11+
"lint": "next lint",
12+
"prepare": "husky install",
13+
"start": "next start"
1414
},
1515
"dependencies": {
1616
"@vercel/analytics": "^1.1.1",
17+
"clsx": "^2.0.0",
18+
"dayjs": "^1.11.10",
1719
"next": "^14.0.3",
1820
"react": "18.2.0",
19-
"react-dom": "18.2.0"
21+
"react-dom": "18.2.0",
22+
"server-only": "^0.0.1"
23+
},
24+
"devDependencies": {
25+
"@next/bundle-analyzer": "^14.0.3",
26+
"@types/node": "^20.10.0",
27+
"@types/react": "^18.2.38",
28+
"@types/react-dom": "^18.2.17",
29+
"autoprefixer": "^10.4.16",
30+
"cssnano": "^6.0.1",
31+
"daisyui": "^4.4.10",
32+
"husky": "^8.0.3",
33+
"next-sitemap": "^4.2.3",
34+
"postcss": "^8.4.31",
35+
"tailwindcss": "^3.3.5",
36+
"typescript": "^5.3.2"
2037
},
2138
"optionalDependencies": {
2239
"@microsoft/eslint-plugin-sdl": "^0.2.2",
23-
"@next/bundle-analyzer": "^14.0.3",
24-
"@typescript-eslint/eslint-plugin": "^6.11.0",
25-
"@typescript-eslint/parser": "^6.11.0",
26-
"eslint": "^8.53.0",
40+
"@typescript-eslint/eslint-plugin": "^6.12.0",
41+
"@typescript-eslint/parser": "^6.12.0",
42+
"eslint": "^8.54.0",
2743
"eslint-config-airbnb": "^19.0.4",
2844
"eslint-config-airbnb-typescript": "^17.1.0",
2945
"eslint-config-next": "^14.0.3",
3046
"eslint-config-prettier": "^9.0.0",
3147
"eslint-plugin-etc": "^2.0.3",
3248
"eslint-plugin-import": "^2.29.0",
33-
"eslint-plugin-perfectionist": "^2.4.0",
49+
"eslint-plugin-perfectionist": "^2.4.2",
3450
"eslint-plugin-prettier": "^5.0.1",
3551
"eslint-plugin-react": "^7.33.2",
3652
"eslint-plugin-sonar": "^0.12.0",
3753
"eslint-plugin-tailwindcss": "^3.13.0",
3854
"eslint-plugin-unicorn": "^49.0.0",
3955
"prettier": "^3.1.0"
40-
},
41-
"devDependencies": {
42-
"@types/node": "^20.9.1",
43-
"@types/react": "^18.2.37",
44-
"@types/react-dom": "^18.2.15",
45-
"autoprefixer": "^10.4.16",
46-
"cssnano": "^6.0.1",
47-
"husky": "^8.0.3",
48-
"next-sitemap": "^4.2.3",
49-
"postcss": "^8.4.31",
50-
"sass": "^1.69.5",
51-
"tailwindcss": "^3.3.5",
52-
"typescript": "^5.2.2"
5356
}
5457
}

0 commit comments

Comments
 (0)