umi 3.X 优化build文件目录

优化前 umi build

在这里插入图片描述

优化后 效果立马拉满对不

在这里插入图片描述

解决方案如下

 // 修改css输出目录
    config.plugin('extract-css').tap(() => [
      {
        filename: `${staticDir}/css/[name].[contenthash:8].css`,
        chunkFilename: `${staticDir}/css/[name].[contenthash:8].chunk.css`,
        ignoreOrder: true
      }
    ]);
   // 修改js输出目录
    config.output.filename(`${staticDir}/js/[name].[hash:8].js`).chunkFilename(`${staticDir}/js/[name].[contenthash:8].chunk.js`);
   // 修改图片输出目录
    config.module
      .rule("images")
      .test(/\.(png|jpe?g|gif|webp|ico)(\?.*)?$/)
      .use("url-loader")
      .loader(require.resolve("url-loader"))
      .tap((options: { fallback: any; }) => {
        const newOptions = {
          ...options,
          name: staticDir + "/images/[name].[hash:8].[ext]",
          fallback: {
            ...options.fallback,
            options: {
              name: staticDir + "/images/[name].[hash:8].[ext]",
              esModule: false,
            },
          },
        };
        return newOptions;
      });

    config.module
      .rule("svg")
      .test(/\.(svg)(\?.*)?$/)
      .use("file-loader")
      .loader(require.resolve("file-loader"))
      .tap((options: any) => ({
        ...options,
        name: staticDir + "/images/[name].[hash:8].[ext]",
        esModule: false,
      }));

编译完成, 如果在项目中有引入一些静态文件资源, 记得修改引入的文件路径, 否则会找不到对于源文件而报错

 // 修改css文件资源文件访问路径
    config.module
      .rule('css')
      .oneOf('css')
      .use('extract-css-loader')
      .tap((options: any) => ({
        publicPath: '../../',
        hmr: false,
      }));
    config.module
      .rule('less')
      .oneOf('css')
      .use('extract-css-loader')
      .tap((options: any) => ({
        publicPath: '../../',
        hmr: false,
      }));
    config.module
      .rule('less')
      .oneOf('css-modules')
      .use('extract-css-loader')
      .tap((options: any) => ({
        publicPath: '../../',
        hmr: false,
      }));
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用和引用的内容,可以了解到在umi 4.x版本中,可以使用useEffect钩子来在每次显示modal(模态框)时手动设置表单的初始值。在使用useEffect钩子时,可以使用form.setFieldsValue方法来设置表单的初始值,例如: ```javascript import { useEffect } from 'react'; import { useForm } from 'antd'; const MyComponent = ({ visible, userInfo }) => { const [form = useForm(); useEffect(() => { if (visible) { form.setFieldsValue({ status: "1", isAdmin: "0", ...userInfo }); } }, [visible, userInfo]); // 其他代码 return ( // 组件的JSX代码 ); }; ``` 根据引用的内容,umi 4.x版本中还进行了一些语法调整,比如替换了一些引入的依赖库和修改了一些API的使用方式。具体来说,针对状态管理的部分,可以使用useDispatch和useSelector来进行数据状态管理。而针对表单的部分,可以使用Form.useForm()来替代之前的Form.create()方法,以支持antd 4.x的使用。 综上所述,在umi 4.x版本中,可以使用useEffect钩子来处理modal的显示和表单的初始化,使用useDispatch和useSelector进行数据状态管理,并使用Form.useForm()来创建表单。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Umi2.x升级到Umi3.x](https://blog.csdn.net/u012125121/article/details/106567400)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值