create-next-app 创建 nextjs 项目

  1. npx create-next-app@latest ssr-next
  2. # ts项目
  3. npx create-next-app@latest --typescript ssr-next
  4. pnpm dev # 运行 next dev,以开发模式启动 Next.js
  5. pnpm build # 运行 next build,以构建用于生产环境的应用程序
  6. pnpm start # 运行 next start,以启动 Next.js 生产环境服务器
  7. pnpm lint # 运行 next lint,以设置 Next.js 的内置 ESLint 配置

image.png

Eslint js 代码规范校验
Stylelint css 代码格式化
Prettier 代码格式化

tailwindcss

https://nextjs.org/docs/app/building-your-application/styling/tailwind-css#installing-tailwind

  1. pnpm add tailwindcss postcss autoprefixer -D
  2. npx tailwindcss init -p

swc

https://swc.rs
swc 中文 https://swc.nodejs.cn
SWC is 20x faster than Babel on a single thread and 70x faster on four cores.
SWC在单线程上比Babel快20倍,在四核上快70倍
新一代的编译工具,基于 rust,替换 babel;
esbuild,替换 webpack,rollup 等构建工具。
凡是能用 rust 重写的前端工具就用 rust 重写,通过 rust 实现的 babel:swc,一个将 ES6 转化为 ES5 的工具

babel 的插件系统被 swc 整合成了 jsc.parser 内的配置
jsc.minify 用于配置压缩相关的规则

nextjs web3

https://web3.ant.design/zh-CN/guide/quick-start

  1. pnpm add antd @ant-design/web3 @ant-design/web3-icons
  2. pnpm add @ant-design/web3-wagmi wagmi

Server Error
Error: createContext only works in Client Components. Add the “use client” directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component
This error happened while generating the page. Any console logs will be displayed in the terminal window.链接
原因:
Next.js 在加载 node_modules 下面的依赖包时没有走相关的编译逻辑。
需要手动在 Next.js 的配置文件 next.config.js 中添加 transpilePackages
https://nextjs.org/docs/app/api-reference/next-config-js/transpilePackages

Add the “use client” directive at the top of the file to use it

在Next.js中使用 @ant-design/web3 报错
createContext only works in Client Components. Add the “use client” directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component
解决方法是加上”use client”标签,在import的上方加入

  1. "use client"
  2. import Image from "next/image";
  3. import { Address } from '@ant-design/web3';

要导入的 Address 正在使用客户端钩子 createContext。 需要在文件顶部添加“use client”,意味着该页面成为客户端组件,而不再是服务器组件。

Support for defaultProps will be removed from function components

Warning: SVGComponent: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.
原因