指点成金-最美分享吧

登录

react18 + TS的webpack增量配置——使用craco/craco

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了react18 + TS的webpack增量配置——使用craco/craco相关的知识,希望对你有一定的参考价值。

react18 + TS的webpack增量配置——使用@craco/craco

安装@craco/craco

在项目根目录下面创建一个craco.config.ts文件

在tsconfig.json文件中添加tsc编译目录或文件

修改package.json文件中的自定义命令

  • yarn add @craco/craco
  • yarn add -D @types/node
  • 修改配置,araco.config,ts和tsc.confi配置。
  • 这次修改之后模块化就变成了ESCM,es6模块化;
  • 注意导入方式。
  • mock数据,安装一下
  • yarn add -D express @types/express // 指定express的数据类型
// 此文件的功能是增量配置webpack的,修改了此文件,一定要重启项目// https://github.com/dilanx/craco/blob/master/packages/craco/README.md// const path = require("path")import  resolve  from "path"import mockFn from "./mock"module.exports =   // yarn add -D babel-plugin-import 包先安装  babel:     // antd包在craco增量配置中的按需加载配置    // plugins: [["import",  libraryName: "antd", libraryDirectory: "es", style: "css" ]]  ,  // 添加路径别名  webpack:     alias:       // 在组件中就可以用@来表示,当前项目到src目录      "@": resolve("./src")      ,  devServer:     // 浏览器自动打开关闭    open: false,    port: 3000,    proxy:       // "/api":       //   target: "http://localhost:3000",      //   changeOrigin:true,      //   pathRewrite:  "^/api": ""       //     ,    // 在内置一些方法,它里面的类型过于复杂,可以用any,但在你定义的应用中,尽可能不要用any    setupMiddlewares: (mids: any, server: any) =>       // app它就是express的实例对象      mockFn(server.app)      // 必须要把mids对象返回      return mids      

在tsconfig.json修改文件。做到@/路径能被找见:

"baseUrl": ".", //在组件中就可以使用@时过来提示文件 "paths":      "@/*":["./src/*"] 

mock数据:

import type  Request, Response, Application  from "express"export default (app: Application) =>   app.get("/api/users", (req: Request, res: Response) =>     res.send(      code: 0,      msg: "ok",      data: [         id: 1, name: "张三" ,         id: 2, name: "李四" ,         id: 3, name: "王五"       ]    )  )

以上是关于react18 + TS的webpack增量配置——使用craco/craco的主要内容,如果未能解决你的问题,请参考以下文章