From 2ddf1acbfd4ebd4273d747869c32b0a5813c3d95 Mon Sep 17 00:00:00 2001
From: Dmitriy Bratchikov
Date: Mon, 27 May 2024 17:18:49 +0700
Subject: [PATCH] fix: pages dir in root
---
.prettierrc.json | 2 +-
README.md | 34 +++++++++++++------
app/page.tsx | 2 +-
jest.config.ts | 2 +-
pages/.gitkeep | 0
src/{pagesLayer => pages}/HomePage/index.ts | 0
.../HomePage/ui/HomePage.module.scss | 0
.../HomePage/ui/HomePage.test.tsx | 0
.../HomePage/ui/HomePage.tsx | 4 +--
tsconfig.json | 2 +-
10 files changed, 29 insertions(+), 17 deletions(-)
create mode 100644 pages/.gitkeep
rename src/{pagesLayer => pages}/HomePage/index.ts (100%)
rename src/{pagesLayer => pages}/HomePage/ui/HomePage.module.scss (100%)
rename src/{pagesLayer => pages}/HomePage/ui/HomePage.test.tsx (100%)
rename src/{pagesLayer => pages}/HomePage/ui/HomePage.tsx (83%)
diff --git a/.prettierrc.json b/.prettierrc.json
index 291ff4d..81d962b 100644
--- a/.prettierrc.json
+++ b/.prettierrc.json
@@ -16,7 +16,7 @@
"",
"",
"",
- "^(@shared|@entities|@features|@widgets|@pagesLayer|@app)(/.*)$",
+ "^(@shared|@entities|@features|@widgets|@pages|@app)(/.*)$",
"",
"^(?!.*[.]scss$)[./].*$",
".scss$",
diff --git a/README.md b/README.md
index 8d45d22..d2ed04f 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,31 @@
# Next.js + Feature-Sliced Design | Pure Template
+## IMPORTANT
+Do not delete the pages* folder even if you are using App Router, deleting the pages folder
+will result in a [build error](https://t.me/feature_sliced/1/107414).
+
+## ADDITIONAL SOLUTION TO THE PROBLEM
+If you don't like the empty "pages" folder in the project root, you can rename the pages layer (./src/pages)
+for example to "pagesLayer" and then delete the pages folder from the project root.
+
+**Use what you like best <3**
+
+---
+
## Folders description
-| Folder | Description |
-|-----------------|-----------------------------------------------------------------------------------------------------------------|
-| app | Next App folder for [App Routing](https://nextjs.org/docs/app/building-your-application/routing#the-app-router) |
-| public | Public files |
-| src/app | App FSD Layer |
-| src/pagesLayer* | Pages FSD Layer |
-| src/widgets | Widgets FSD Layer |
-| src/features | Features FSD Layer |
-| src/entities | Entities FSD Layer |
-| src/shared | Shared FSD Layer |
+| Folder | Description |
+|--------------|-----------------------------------------------------------------------------------------------------------------|
+| app | Next App folder for [App Routing](https://nextjs.org/docs/app/building-your-application/routing#the-app-router) |
+| pages * | Next Pages folder for [Pages Routing](https://nextjs.org/docs/pages) |
+| public | Public files |
+| src/app | App FSD Layer |
+| src/pages | Pages FSD Layer |
+| src/widgets | Widgets FSD Layer |
+| src/features | Features FSD Layer |
+| src/entities | Entities FSD Layer |
+| src/shared | Shared FSD Layer |
-* **pagesLayer**, not **pages** because _*pages*_ is a reserved name for [Pages Router](https://nextjs.org/docs/pages) and an error occurs during [assembly](https://t.me/feature_sliced/1/107414).
## Remove junk _.gitkeep_ files
### UNIX
diff --git a/app/page.tsx b/app/page.tsx
index 2ca4629..41f655e 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,4 +1,4 @@
-import { HomePage } from "@pagesLayer/HomePage"
+import { HomePage } from "@pages/HomePage"
export default function Home() {
return (
diff --git a/jest.config.ts b/jest.config.ts
index 549793a..daecb3c 100644
--- a/jest.config.ts
+++ b/jest.config.ts
@@ -14,7 +14,7 @@ const config: Config = {
"@app/(.*)$": "/src/app/$1",
"@entities/(.*)$": "/src/entities/$1",
"@features/(.*)$": "/src/features/$1",
- "@pagesLayer/(.*)$": "/src/pagesLayer/$1",
+ "@pages/(.*)$": "/src/pages/$1",
"@shared/(.*)$": "/src/shared/$1",
"@widgets/(.*)$": "/src/widgets/$1",
"@/(.*)$": "/src/$1",
diff --git a/pages/.gitkeep b/pages/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/pagesLayer/HomePage/index.ts b/src/pages/HomePage/index.ts
similarity index 100%
rename from src/pagesLayer/HomePage/index.ts
rename to src/pages/HomePage/index.ts
diff --git a/src/pagesLayer/HomePage/ui/HomePage.module.scss b/src/pages/HomePage/ui/HomePage.module.scss
similarity index 100%
rename from src/pagesLayer/HomePage/ui/HomePage.module.scss
rename to src/pages/HomePage/ui/HomePage.module.scss
diff --git a/src/pagesLayer/HomePage/ui/HomePage.test.tsx b/src/pages/HomePage/ui/HomePage.test.tsx
similarity index 100%
rename from src/pagesLayer/HomePage/ui/HomePage.test.tsx
rename to src/pages/HomePage/ui/HomePage.test.tsx
diff --git a/src/pagesLayer/HomePage/ui/HomePage.tsx b/src/pages/HomePage/ui/HomePage.tsx
similarity index 83%
rename from src/pagesLayer/HomePage/ui/HomePage.tsx
rename to src/pages/HomePage/ui/HomePage.tsx
index 0903c26..8dedaa9 100644
--- a/src/pagesLayer/HomePage/ui/HomePage.tsx
+++ b/src/pages/HomePage/ui/HomePage.tsx
@@ -16,8 +16,8 @@ const HomePage = () => {
- You can edit src/pagesLayer/HomePage{" "}
- to start {"<3"}!
+ You can edit src/pages/HomePage to
+ start {"<3"}!
You can also test your application using Jest :D. Try it!
diff --git a/tsconfig.json b/tsconfig.json
index 24ba6b0..ff3ccf3 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -21,7 +21,7 @@
"@app/*": ["./src/app/*"],
"@entities/*": ["./src/entities/*"],
"@features/*": ["./src/features/*"],
- "@pagesLayer/*": ["./src/pagesLayer/*"],
+ "@pages/*": ["./src/pages/*"],
"@shared/*": ["./src/shared/*"],
"@widgets/*": ["./src/widgets/*"],