Micro View of Allium

Micro View of Allium


> learn-starter@0.1.0 build \nextjs-blog
> next build

info  - Creating an optimized production build
info  - Compiled successfully
info  - Collecting page data ...
++++++ Dynamic getStaticPaths { locales: [ 'en', 'zh-CN' ], defaultLocale: 'en' } [
  { locale: 'zh-CN', params: { dynamic: 'dynamic' } },
  { locale: 'zh-CN', params: { dynamic: 'pass' } },
  { locale: 'zh-CN', params: { dynamic: 'sideway' } },
  { locale: 'zh-CN', params: { dynamic: 'more' } }
]
====== getPostSlugs Docs
info  - Collecting page data .
====== getPostSlugs Docs\Advanced
====== getPostSlugs Docs\React
++++++[...slug] getStaticPaths { locales: [ 'en', 'zh-CN' ], defaultLocale: 'en' } [{"locale":"zh-CN","params":{"slug":["tutorial-assets"]}},{"locale":"zh-CN","params":{"slug":["tutorial-basic"]}},{"locale":"zh-CN","params":{"slug":["tutorial-config"]}},{"locale":"zh-CN","params":{"slug":["tutorial-custom-page"]}},{"locale":"zh-CN","params":{"slug":["tutorial-layout"]}},{"locale":"zh-CN","params":{"slug":["tutorial-link-route"]}},{"locale":"zh-CN","params":{"slug":["tutorial-start"]}},{"locale":"zh-CN","params":{"slug":["tutorial-styling"]}},{"locale":"zh-CN","params":{"slug":["tutorial-typescript"]}},{"locale":"zh-CN","params":{"slug":["Advanced","i18n"]}},{"locale":"zh-CN","params":{"slug":["Advanced","markdown"]}},{"locale":"zh-CN","params":{"slug":["Advanced","pages"]}},{"locale":"zh-CN","params":{"slug":["Advanced","prerendering"]}},{"locale":"zh-CN","params":{"slug":["Advanced","route"]}},{"locale":"zh-CN","params":{"slug":["React","babel"]}},{"locale":"zh-CN","params":{"slug":["React","createClass"]}},{"locale":"zh-CN","params":{"slug":["React","hello"]}},{"locale":"zh-CN","params":{"slug":["React","list-key-reconciliation"]}},{"locale":"zh-CN","params":{"slug":["React","mainconcepts"]}},{"locale":"zh-CN","params":{"slug":["React","props"]}},{"locale":"zh-CN","params":{"slug":["React","render"]}},{"locale":"zh-CN","params":{"slug":["React","state"]}}]
info  - Collecting page data ..
++++++ Optional Catch-all getStaticPaths { locales: [ 'en', 'zh-CN' ], defaultLocale: 'en' } [
  { locale: 'zh-CN', params: { catchopt: [Array] } },
  { locale: 'zh-CN', params: { catchopt: [Array] } },
  { locale: 'zh-CN', params: { catchopt: false } }
]
info  - Collecting page data
[  ==] info  - Generating static pages (0/45)
------ route normal.tsx {} ServerRouter {
  route: '/route/normal',
  pathname: '/route/normal',
  query: {},
  asPath: '/route/normal',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'en',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
[   =] info  - Generating static pages (0/45)
++++++ Dynamic getStaticProps {
  params: { dynamic: 'pass' },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
++++++ Dynamic getStaticProps {
  params: { dynamic: 'dynamic' },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
++++++ Dynamic getStaticProps {
  params: { dynamic: 'sideway' },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
++++++ Dynamic getStaticProps {
  params: { dynamic: 'more' },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
------ route [dynamic].tsx {
  data: '{"params":{"dynamic":"pass"},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} {"dynamic":"pass"} ServerRouter {
  route: '/route/[dynamic]',
  pathname: '/route/[dynamic]',
  query: { dynamic: 'pass' },
  asPath: '/route/pass',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
------ route [dynamic].tsx {
  data: '{"params":{"dynamic":"dynamic"},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} {"dynamic":"dynamic"} ServerRouter {
  route: '/route/[dynamic]',
  pathname: '/route/[dynamic]',
  query: { dynamic: 'dynamic' },
  asPath: '/route/dynamic',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
------ route [dynamic].tsx {
  data: '{"params":{"dynamic":"sideway"},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} {"dynamic":"sideway"} ServerRouter {
  route: '/route/[dynamic]',
  pathname: '/route/[dynamic]',
  query: { dynamic: 'sideway' },
  asPath: '/route/sideway',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
------ route [dynamic].tsx {
  data: '{"params":{"dynamic":"more"},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} {"dynamic":"more"} ServerRouter {
  route: '/route/[dynamic]',
  pathname: '/route/[dynamic]',
  query: { dynamic: 'more' },
  asPath: '/route/more',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
[    ] info  - Generating static pages (0/45)
++++++[...slug] getStaticProps { slug: [ 'tutorial-assets' ] }
[   =] info  - Generating static pages (0/45)
++++++[...slug] getStaticProps { slug: [ 'tutorial-config' ] }
====== getPostBySlug [ 'tutorial-assets' ] \nextjs-blog\Docs\tutorial-assets.md 👉 05 静态资源管理
++++++[...slug] getStaticProps { slug: [ 'tutorial-basic' ] }
[  ==] info  - Generating static pages (0/45)
++++++[...slug] getStaticProps { slug: [ 'tutorial-custom-page' ] }
====== getPostBySlug [ 'tutorial-config' ] \nextjs-blog\Docs\tutorial-config.md 👉 09 next.config.js 配置脚本
++++++[...slug] getStaticProps { slug: [ 'tutorial-layout' ] }
Markdown { slug: [ 'tutorial-assets' ] } /tutorial/tutorial-assets
====== getPostBySlug [ 'tutorial-basic' ] \nextjs-blog\Docs\tutorial-basic.md 👉 02 工程基本结构
++++++[...slug] getStaticProps { slug: [ 'tutorial-start' ] }
++++++[...slug] getStaticProps { slug: [ 'tutorial-link-route' ] }
Markdown { slug: [ 'tutorial-config' ] } /tutorial/tutorial-config
Markdown { slug: [ 'tutorial-basic' ] } /tutorial/tutorial-basic
====== getPostBySlug [ 'tutorial-custom-page' ] \nextjs-blog\Docs\tutorial-custom-page.md 👉 03 自定义页面
[ ===] info  - Generating static pages (0/45)Markdown { slug: [ 'tutorial-custom-page' ] } /tutorial/tutorial-custom-page
++++++[...slug] getStaticProps { slug: [ 'tutorial-styling' ] }
====== getPostBySlug [ 'tutorial-layout' ] \nextjs-blog\Docs\tutorial-layout.md 👉 06 布局打磨
====== getPostBySlug [ 'tutorial-start' ] \nextjs-blog\Docs\tutorial-start.md 👉 01 Next.js SSR 服务端渲染!
====== getPostBySlug [ 'tutorial-link-route' ] \nextjs-blog\Docs\tutorial-link-route.md 👉 04 路由相关组件 Link & Route
Markdown { slug: [ 'tutorial-start' ] } /tutorial/tutorial-start
Markdown { slug: [ 'tutorial-link-route' ] } /tutorial/tutorial-link-route
====== getPostBySlug [ 'tutorial-styling' ] \nextjs-blog\Docs\tutorial-styling.md ?  07 样式配置建议
Markdown { slug: [ 'tutorial-layout' ] } /tutorial/tutorial-layout
Markdown { slug: [ 'tutorial-styling' ] } /tutorial/tutorial-styling
++++++[...slug] getStaticProps { slug: [ 'Advanced', 'markdown' ] }
++++++[...slug] getStaticProps { slug: [ 'tutorial-typescript' ] }
++++++[...slug] getStaticProps { slug: [ 'Advanced', 'prerendering' ] }
++++++[...slug] getStaticProps { slug: [ 'Advanced', 'pages' ] }
++++++[...slug] getStaticProps { slug: [ 'Advanced', 'i18n' ] }
[====] info  - Generating static pages (11/45)
====== getPostBySlug [ 'tutorial-typescript' ] \nextjs-blog\Docs\tutorial-typescript.md 👉 08 Typ
eScript 配置使用
====== getPostBySlug [ 'Advanced', 'markdown' ] \nextjs-blog\Docs\Advanced\markdown.md 👉 14 Markdown 文档处理
====== getPostBySlug [ 'Advanced', 'i18n' ] \nextjs-blog\Docs\Advanced\i18n.md 👉 15 i18n 国际化与本地化
====== getPostBySlug [ 'Advanced', 'pages' ] \nextjs-blog\Docs\Advanced\pages.md 👉 12 页面组件渲染
====== getPostBySlug [ 'Advanced', 'prerendering' ] \nextjs-blog\Docs\Advanced\prerendering.md 👉 13 预渲染与数据依赖
Markdown { slug: [ 'tutorial-typescript' ] } /tutorial/tutorial-typescript
Markdown { slug: [ 'Advanced', 'markdown' ] } /tutorial/Advanced/markdown
Markdown { slug: [ 'Advanced', 'i18n' ] } /tutorial/Advanced/i18n
Markdown { slug: [ 'Advanced', 'pages' ] } /tutorial/Advanced/pages
Markdown { slug: [ 'Advanced', 'prerendering' ] } /tutorial/Advanced/prerendering
++++++[...slug] getStaticProps { slug: [ 'React', 'babel' ] }
++++++[...slug] getStaticProps { slug: [ 'Advanced', 'route' ] }
++++++[...slug] getStaticProps { slug: [ 'React', 'hello' ] }
++++++[...slug] getStaticProps { slug: [ 'React', 'list-key-reconciliation' ] }
====== getPostBySlug [ 'React', 'babel' ] \nextjs-blog\Docs\React\babel.md 👉 A3 JSX & Babel 入门
++++++[...slug] getStaticProps { slug: [ 'React', 'createClass' ] }
[=== ] info  - Generating static pages (11/45)
====== getPostBySlug [ 'React', 'hello' ] \nextjs-blog\Docs\React\hello.md 👉 A1 Hello React
====== getPostBySlug [ 'React', 'list-key-reconciliation' ] \nextjs-blog\Docs\React\list-key-reconciliation.md 👉 A8 列表、键值与协调器
Markdown { slug: [ 'React', 'babel' ] } /tutorial/React/babel
====== getPostBySlug [ 'Advanced', 'route' ] \nextjs-blog\Docs\Advanced\route.md 👉 11 路由配置
====== getPostBySlug [ 'React', 'createClass' ] \nextjs-blog\Docs\React\createClass.md 👉 A4 换一种组件创建方式
Markdown { slug: [ 'React', 'hello' ] } /tutorial/React/hello
Markdown { slug: [ 'React', 'list-key-reconciliation' ] } /tutorial/React/list-key-reconciliation
Markdown { slug: [ 'Advanced', 'route' ] } /tutorial/Advanced/route
Markdown { slug: [ 'React', 'createClass' ] } /tutorial/React/createClass
++++++[...slug] getStaticProps { slug: [ 'React', 'mainconcepts' ] }
++++++[...slug] getStaticProps { slug: [ 'React', 'props' ] }
[==  ] info  - Generating static pages (11/45)
====== getPostBySlug [ 'React', 'mainconcepts' ] \nextjs-blog\Docs\React\mainconcepts.md 👉 A2 基
本概念
++++++[...slug] getStaticProps { slug: [ 'React', 'render' ] }
====== getPostBySlug [ 'React', 'props' ] \nextjs-blog\Docs\React\props.md 👉 A6 组件与属性
Markdown { slug: [ 'React', 'mainconcepts' ] } /tutorial/React/mainconcepts
====== getPostBySlug [ 'React', 'render' ] \nextjs-blog\Docs\React\render.md 👉 A5 触发更新渲染
Markdown { slug: [ 'React', 'props' ] } /tutorial/React/props
[=   ] info  - Generating static pages (22/45)Markdown { slug: [ 'React', 'render' ] } /tutorial/React/render
++++++ Optional Catch-all getStaticProps {
  params: { catchopt: [ 'catch', 'all' ] },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
++++++ Optional Catch-all getStaticProps {
  params: {},
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
++++++ Optional Catch-all getStaticProps {
  params: { catchopt: [ 'catch', 'GitHub' ] },
  locales: [ 'en', 'zh-CN' ],
  locale: 'zh-CN',
  defaultLocale: 'en'
}
------ [[...catchopt]].tsx false {
  data: '{"params":{"catchopt":["catch","all"]},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} ServerRouter {
  route: '/route/[[...catchopt]]',
  pathname: '/route/[[...catchopt]]',
  query: { catchopt: [ 'catch', 'all' ] },
  asPath: '/route/catch/all',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
++++++[...slug] getStaticProps { slug: [ 'React', 'state' ] }
------ [[...catchopt]].tsx false {
  data: '{"params":{},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} ServerRouter {
  route: '/route/[[...catchopt]]',
  pathname: '/route/[[...catchopt]]',
  query: {},
  asPath: '/route',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
[    ] info  - Generating static pages (22/45)------ [[...catchopt]].tsx false {
  data: '{"params":{"catchopt":["catch","GitHub"]},"locales":["en","zh-CN"],"locale":"zh-CN","defaultLocale":"en"}'
} ServerRouter {
  route: '/route/[[...catchopt]]',
  pathname: '/route/[[...catchopt]]',
  query: { catchopt: [ 'catch', 'GitHub' ] },
  asPath: '/route/catch/GitHub',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
====== getPostBySlug [ 'React', 'state' ] \nextjs-blog\Docs\React\state.md 👉 A7 组件状态与生命周期
Markdown { slug: [ 'React', 'state' ] } /tutorial/React/state
------ route normal.tsx {} ServerRouter {
  route: '/route/normal',
  pathname: '/route/normal',
  query: {},
  asPath: '/route/normal',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'zh-CN',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
------ route normal.tsx {} ServerRouter {
  route: '/route/normal',
  pathname: '/route/normal',
  query: {},
  asPath: '/route/normal',
  basePath: '',
  events: undefined,
  isFallback: false,
  locale: 'en',
  isReady: false,
  locales: [ 'en', 'zh-CN' ],
  defaultLocale: 'en',
  domainLocales: undefined
}
[=   ] info  - Generating static pages (33/45)Will component execute getStaticProps? { locales: [ 'en', 'zh-CN' ], locale: 'en', defaultLocale: 'en' }
++++++ Home getStaticProps { locales: [ 'en', 'zh-CN' ], locale: 'en', defaultLocale: 'en' }
Will component execute getStaticProps? { locales: [ 'en', 'zh-CN' ], locale: 'zh-CN', defaultLocale: 'en' }
++++++ Home getStaticProps { locales: [ 'en', 'zh-CN' ], locale: 'zh-CN', defaultLocale: 'en' }
[==  ] info  - Generating static pages (33/45)
====== getPostSlugs Docs
====== getPostSlugs Docs\Advanced
====== getPostSlugs Docs\React
====== getPosts false Docs
====== getPostBySlug tutorial-assets \nextjs-blog\Docs\tutorial-assets.md 👉 05 静态资源管理
====== getPostBySlug tutorial-basic \nextjs-blog\Docs\tutorial-basic.md 👉 02 工程基本结构
====== getPostBySlug tutorial-config \nextjs-blog\Docs\tutorial-config.md 👉 09 next.config.js 配置脚本
====== getPostBySlug tutorial-custom-page \nextjs-blog\Docs\tutorial-custom-page.md 👉 03 自定义页面
====== getPostBySlug tutorial-layout \nextjs-blog\Docs\tutorial-layout.md 👉 06 布局打磨
====== getPostBySlug tutorial-link-route \nextjs-blog\Docs\tutorial-link-route.md ?  04 路由相关组件 Link & Route
====== getPostBySlug tutorial-start \nextjs-blog\Docs\tutorial-start.md 👉 01 Next.js SSR 服务端渲染!
====== getPostBySlug tutorial-styling \nextjs-blog\Docs\tutorial-styling.md 👉 07 样式配置建议
====== getPostBySlug tutorial-typescript \nextjs-blog\Docs\tutorial-typescript.md ?  08 TypeScript 配置使用
====== getPosts false Docs\Advanced
====== getPostSlugs Docs
====== getPostBySlug i18n \nextjs-blog\Docs\Advanced\i18n.md 👉 15 i18n 国际化与本地化
====== getPostBySlug markdown \nextjs-blog\Docs\Advanced\markdown.md 👉 14 Markdown 文档处理
====== getPostSlugs Docs\Advanced
====== getPostBySlug pages \nextjs-blog\Docs\Advanced\pages.md 👉 12 页面组件渲染
====== getPostSlugs Docs\React
====== getPostBySlug prerendering \nextjs-blog\Docs\Advanced\prerendering.md 👉 13 预渲染与数据依赖
====== getPosts false Docs
====== getPostBySlug route \nextjs-blog\Docs\Advanced\route.md 👉 11 路由配置
====== getPostBySlug tutorial-assets \nextjs-blog\Docs\tutorial-assets.md 👉 05 静态资源管理
====== getPosts false Docs\React
====== getPostBySlug tutorial-basic \nextjs-blog\Docs\tutorial-basic.md 👉 02 工程基本结构
====== getPostBySlug babel \nextjs-blog\Docs\React\babel.md 👉 A3 JSX & Babel 入门
====== getPostBySlug tutorial-config \nextjs-blog\Docs\tutorial-config.md 👉 09 next.config.js 配置脚本
====== getPostBySlug createClass \nextjs-blog\Docs\React\createClass.md 👉 A4 换一种组件创建方式
====== getPostBySlug tutorial-custom-page \nextjs-blog\Docs\tutorial-custom-page.md 👉 03 自定义页面
====== getPostBySlug hello \nextjs-blog\Docs\React\hello.md 👉 A1 Hello React
====== getPostBySlug tutorial-layout \nextjs-blog\Docs\tutorial-layout.md 👉 06 布局打磨
====== getPostBySlug list-key-reconciliation \nextjs-blog\Docs\React\list-key-reconciliation.md 👉 A8 列表、键值与协调器
====== getPostBySlug mainconcepts \nextjs-blog\Docs\React\mainconcepts.md 👉 A2 基本概念
====== getPostBySlug tutorial-link-route \nextjs-blog\Docs\tutorial-link-route.md ?  04 路由相关组件 Link & Route
====== getPostBySlug props \nextjs-blog\Docs\React\props.md 👉 A6 组件与属性
====== getPostBySlug tutorial-start \nextjs-blog\Docs\tutorial-start.md 👉 01 Next.js SSR 服务端渲染!
====== getPostBySlug render \nextjs-blog\Docs\React\render.md 👉 A5 触发更新渲染
====== getPostBySlug tutorial-styling \nextjs-blog\Docs\tutorial-styling.md 👉 07 样式配置建议
====== getPostBySlug state \nextjs-blog\Docs\React\state.md 👉 A7 组件状态与生命周期
====== getPostBySlug tutorial-typescript \nextjs-blog\Docs\tutorial-typescript.md ?  08 TypeScript 配置使用
====== getPosts false Docs\Advanced
====== getPostBySlug i18n \nextjs-blog\Docs\Advanced\i18n.md 👉 15 i18n 国际化与本地化
====== getPostBySlug markdown \nextjs-blog\Docs\Advanced\markdown.md 👉 14 Markdown 文档处理
====== getPostBySlug pages \nextjs-blog\Docs\Advanced\pages.md 👉 12 页面组件渲染
====== getPostBySlug prerendering \nextjs-blog\Docs\Advanced\prerendering.md 👉 13 预渲染与数据依赖
====== getPostBySlug route \nextjs-blog\Docs\Advanced\route.md 👉 11 路由配置
====== getPosts false Docs\React
====== getPostBySlug babel \nextjs-blog\Docs\React\babel.md 👉 A3 JSX & Babel 入门
info  - Generating static pages (45/45)
info  - Finalizing page optimization .====== getPostBySlug createClass \nextjs-blog\Docs\React\createClass.md 👉 A4 换一种组件创建方式
info  - Finalizing page optimization

Page                                                           Size     First Load JS
┌ ● /                                                          2.39 kB        73.8 kB
├   /_app                                                      0 B            63.6 kB
├ ○ /404                                                       3.46 kB          67 kB
├ ○ /authors/me                                                2.86 kB        66.4 kB
├ ○ /posts/build                                               3.51 kB          75 kB
├ ● /posts/posts                                               1.93 kB        65.5 kB
├ λ /posts/tutorial-assets                                     3.66 kB        82.9 kB
├ ● /route/[[...catchopt]]                                     459 B          68.4 kB
├   ├ /zh-CN/route/catch/all
├   ├ /zh-CN/route/catch/GitHub
├   └ /zh-CN/route
├ ● /route/[dynamic]                                           411 B          68.3 kB
├   ├ /zh-CN/route/dynamic
├   ├ /zh-CN/route/pass
├   ├ /zh-CN/route/sideway
├   └ /zh-CN/route/more
├ ○ /route/normal                                              403 B          68.3 kB
└ ● /tutorial/[...slug]                                        685 B          79.9 kB
    ├ /zh-CN/tutorial/tutorial-assets
    ├ /zh-CN/tutorial/tutorial-basic
    ├ /zh-CN/tutorial/tutorial-config
    └ [+19 more paths]
+ First Load JS shared by all                                  63.6 kB
  ├ chunks/3b3c9a2ea2010c89a76e8629b038f31464800316.486aa7.js  13.7 kB
  ├ chunks/framework.abffcf.js                                 41.8 kB
  ├ chunks/main.fee731.js                                      6.76 kB
  ├ chunks/pages/_app.3be81f.js                                586 B
  ├ chunks/webpack.50bee0.js                                   751 B
  └ css/245a5a5b69ac3d01410a.css                               1.03 kB

λ  (Server)  server-side renders at runtime (uses getInitialProps or getServerSideProps)
○  (Static)  automatically rendered as static HTML (uses no initial props)
●  (SSG)     automatically generated as static HTML + JSON (uses getStaticProps)
   (ISR)     incremental static regeneration (uses revalidate in getStaticProps)


Terminal will be reused by tasks, press any key to close it.