nextjs构建服务端渲染,同时使用Material UI进行项目配置

一、创建一个next项目

使用create-next-app来启动一个新的Next.js应用,它会自动为你设置好一切

运行命令:

javascript 复制代码
npx create-next-app@latest

执行结果如下:

启动项目:

javascript 复制代码
pnpm dev

执行结果:

启动成功!

二、安装Material UI依赖

根据Material UI官网介绍,截至2021年底,样式组件与服务器渲染的材质UI项目不兼容。这是因为babel-plugin风格的组件不能与@mui包中的styled()实用程序一起工作。有关详细信息,请参阅此GitHub问题。我们强烈建议在SSR项目中使用Emotion。

运行命令:

javascript 复制代码
pnpm add @mui/material @emotion/styled @emotion/react @emotion/cache @mui/icons-material

三、使用prettier美化项目代码

安装prettier相关依赖,及其文件配置

运行命令:

javascript 复制代码
pnpm add prettier eslint-config-prettier eslint-plugin-prettier eslint-plugin-react-hooks -D

prettier文件配置.prettierrc.json

javascript 复制代码
{
  "semi": true,
  "endOfLine": "auto",
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "vueIndentScriptAndStyle": false,
  "jsxBracketSameLine:": true,
  "htmlWhitespaceSensitivity": "ignore",
  "wrapAttributes": true,
  "overrides": [
    {
      "files": "*.html",
      "options": {
        "parser": "html"
      }
    }
  ]
}

安装eslint相关依赖:

运行命令:

javascript 复制代码
pnpm  add @typescript-eslint/parser @typescript-eslint/eslint-plugin eslint-import-resolver-typescript -D

eslint文件.eslintrc.json配置:

javascript 复制代码
{
  "root": true,
  "extends": ["eslint:recommended", "next","prettier"],
  "env": {
    "es6": true,
    "node": true,
    "browser": true
  },
  "parserOptions": {
    "ecmaVersion": 12,
    "parser": "@typescript-eslint/parser"
  },
  "plugins": ["prettier", "react-hooks","@typescript-eslint"],
  "parser": "@typescript-eslint/parser",
  "globals": {
    "chrome": true,
    "React":true
  },
  "settings": {
    "import/resolver": {
      "node": {
        "extensions": [".js", ".jsx", ".ts", ".tsx"]
      }
    }
  },
  "rules": {
    "prettier/prettier":"error"
  }
}

四、使用Prettier自动排序tailwind CSS类

为了使用Prettier自动排序tailwind CSS类,我们需要安装Prettier -plugin-tailwindcss。

运行如下命令安装插件:

javascript 复制代码
pnpm add -D prettier-plugin-tailwindcss

prettier文件配置.prettierrc.json:

javascript 复制代码
{
  "semi": true,
  "endOfLine": "auto",
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "jsxBracketSameLine": false,
  "vueIndentScriptAndStyle": false,
  "jsxBracketSameLine:": true,
  "htmlWhitespaceSensitivity": "ignore",
  "wrapAttributes": true,
  "plugins": ["prettier-plugin-tailwindcss"],
  "overrides": [
    {
      "files": "*.html",
      "options": {
        "parser": "html"
      }
    }
  ]
}

五、安装sass

虽然项目当中已经安装了tailwind css进行样式处理,但是有时候不可避免的需要写点样式.因此,安装sass进行,样式的编写:

javascript 复制代码
pnpm add sass -D

至此,一个使用Material UI组件,使用eslint、Prettier进行规范、美化代码的next项目就搭建完毕了。开始你的炫酷旅程吧!

相关推荐
一叶茶2 天前
前端生成docx文档、excel表格、图片、pdf文件
前端·javascript·react
走,板砖去4 天前
大文件传输与断点续传实现(极简Demo: React+Node.js)
node.js·react
SRestia4 天前
Django+React---从0搭建一个听音乐+聊天室的网站
websocket·django·react
远洋录4 天前
前端部署实战:从人工发布到全自动化流程
前端·人工智能·react
Rudon滨海渔村6 天前
React-antd组件库 - 让Menu子菜单项水平排列 - 下拉菜单排序 - 自定义子菜单展示方式
前端·react.js·前端框架·react
堂铭6 天前
NextJS多语言
前端·i18n·nextjs
远洋录8 天前
前端单元测试实战:从零开始构建可靠的测试体系
前端·人工智能·react
Krorainas8 天前
将PDF流使用 canvas 绘制然后转为图片展示在页面上(二)
前端·javascript·pdf·react
远洋录9 天前
前端性能优化实战:从加载到渲染的全链路提升
前端·人工智能·react
Krorainas10 天前
将PDF流使用 canvas 绘制展示在页面上(一)
前端·javascript·pdf·react