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

Posted 勇敢*牛牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

react18——使用craco库增量修改webpack——配置antd实现按需加载

react18——使用craco库增量修改webpack——配置antd实现按需加载

新手搭建 ts + react + webpack 项目

新手搭建 ts + react + webpack 项目

react的ts配置

从0到1使用 Webpack5 + React + TS 构建标准化应用