umi dev 报错 .umi文件位置不对

运行 umi dev 报错, .umi 文件生成在src下, 不在pages下 求解惑。

img

img

这个错误是因为 umi 项目默认会将 .umi 文件夹生成在 src 目录下,而不是 pages 目录下。
解决方法有两种:

  1. 将 pages 目录改名为 src,让 umi 的默认行为生效。然后在 src 下继续维护 pages 目录。
  2. 在 umi 配置中指定 .umi 文件夹的生成目录。在项目根目录下的 .umirc.ts 文件中添加:
    ts
    export default {
    treeShaking: true,
    routes: [
    { path: '/', component: '../pages/index' }
    ],
    devServer: {
    port: 8000
    },
    alias: {
    '@': path.resolve(__dirname, 'src/')
    },
    outputPath: 'pages/.umi' // 指定 .umi 文件夹生成在 pages 目录
    }
    添加 outputPath: 'pages/.umi' 这一行配置就可以让 .umi 文件夹生成在 pages 目录下。
    umi 的目录结构并不强制要求 pages 目录,你可以根据自己的项目需要调整。指定 .umi 输出目录就是一种灵活配置的方法。
  • 这篇博客: Umi部署pages多页面访问配置中的 二、最终配置 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 
    // ref: https://umijs.org/config/
    // const publicPath = '/AppVersion/';
    
    export default {
      treeShaking: true,
      routes: [
        { exact: true,  path: '/', component: '../pages/index',},
        { exact: true,  path: '/AppVersion', component: '../pages/AppVersion' },
    
      ],
    
      plugins: [
        // ref: https://umijs.org/plugin/umi-plugin-react.html
        ['umi-plugin-react', {
          antd: true,
          dva: true,
          dynamicImport: { webpackChunkName: true },
          title: '禾木云农业保险管理平台',
          dll: false,
    
          routes: {
            exclude: [
              /models\//,
              /services\//,
              /model\.(t|j)sx?$/,
              /service\.(t|j)sx?$/,
              /components\//,
            ],
          },
        }],
      ],
      // manifest: {
      //   basePath: publicPath,
      // },
    
      exportStatic: {
        //部署到任意路径
        dynamicRoot: true,
        //转换html
        htmlSuffix: true,
      },
    
      publicPath:"/projectPage/",
      // runtimePublicPath:true,
      // dynamicImport:true,
      ignoreMomentLocale: true,
      devServer: {
        compress: true,
      },
    
    
    
      // base: "http://39.104.137.209:12935/AppVersion",
      // publicPath: "http://39.104.137.209:12935/projectPage/",
    }
    

1、配置文件问题:请检查 config/config.js 或 config/config.ts 配置文件是否正确,特别是 routes 配置是否正确。如果您使用了约定式路由,也需要确保 src/pages 目录下存在对应的文件或目录。

2、依赖问题:请检查项目依赖是否正确安装,特别是 umi 和 react 相关依赖是否正确安装。您可以尝试重新安装依赖,或者删除 node_modules 目录后重新安装依赖。

3、缓存问题:如果您之前已经运行过 umi dev,可能会存在缓存问题。您可以尝试删除 .umi 目录和 .cache 目录,然后重新运行 umi dev。

4、版本问题:请确保您使用的是最新版本的 Umi 和相关依赖,特别是 umi-plugin-react 插件。如果您使用的是老版本的 Umi,可能会存在一些已知的问题。