vite共享配置之---resolve

一、基本作用

resolve配置项主要用于指定如何解析模块路径,包括设置别名、指定扩展名、避免重复加载依赖以及指定解析条件等。通过合理配置resolve选项,可以更灵活地管理和优化项目中的模块解析逻辑。

二、具体配置选项

1、alias:用于为模块路径创建别名,可以简化导入路径。例如,可以将'@'映射到/src目录,这样在项目中就可以使用简化的路径来导入模块。具体配置如下:

resolve: {
  alias: {
    '@': '/src', // 将 '@' 映射到 '/src' 目录
    '@components': '/src/components', // 将 '@components' 映射到 '/src/components' 目录
    '@utils': '/src/utils' // 将 '@utils' 映射到 '/src/utils' 目录
  }
}

使用别名后,可以这样导入模块:

import Button from '@components/Button';
import { formatDate } from '@utils/date';

    2、extensions:允许指定在解析模块时自动添加的文件扩展名。默认情况下,Vite会解析.mjs.js.ts.jsx.tsx.json等扩展名。但你也可以根据需要进行自定义,例如:

    resolve: {
      extensions: ['.js', '.ts', '.vue'] // 自动解析这些扩展名
    }

    这样,在导入模块时就可以省略扩展名:

    import Example from '@/components/Example'; // 省略了 '.vue' 扩展名

      3、dedupe:用于避免重复加载某些依赖,通常用于处理依赖项之间的版本冲突。例如,如果你的项目中同时使用了不同版本的React,你可以通过dedupe选项来指定只加载一个版本的React

      resolve: {
        dedupe: ['react', 'react-dom'] // 避免重复加载 react 和 react-dom
      }

      Vite 在执行 resolve.dedupe 时会根据以下策略来决定去掉哪个版本:

      1. 基于传入的顺序resolve.dedupe 中的依赖数组顺序可能会影响去重的行为。假设你在配置中列出 reactreact-dom,Vite 会尝试按照这个顺序去解析并去重依赖。也就是说,如果你指定了 ['react', 'react-dom'],那么如果其他依赖有多个版本,Vite 会优先使用配置中顺序靠前的版本。

      2. 优先使用第一个出现的版本:在去重时,Vite 会优先保留第一个出现的版本。如果没有明确的版本要求,它会保留最早出现的版本。

      三、配置示例

      以下是一个完整的vite.config.js配置示例,其中包含了resolve配置项:

      import { defineConfig } from 'vite';
      import { resolve } from 'path';
      
      export default defineConfig({
        resolve: {
          alias: {
            '@': resolve(__dirname, 'src'), // 将 '@' 映射到 'src' 目录
            '@components': resolve(__dirname, 'src/components'), // 将 '@components' 映射到 'src/components' 目录
            '@utils': resolve(__dirname, 'src/utils') // 将 '@utils' 映射到 'src/utils' 目录
          },
          extensions: ['.js', '.ts', '.json', '.vue'], // 自动解析这些扩展名
          dedupe: ['react', 'react-dom'], // 避免重复加载 react 和 react-dom
          // conditions 可以根据需要进行配置
        },
        // 其他配置项...
      });

      Vite和React项目中使用Qiankun进行微前端拆分和打包通常涉及以下几个步骤,假设您已经在主应用中集成并初始化了Qiankun: 1. **安装依赖**: 首先,确保您的子应用的`package.json`文件包含了必要的Qiankun相关依赖,例如`@qiankun/extension-vite`等。运行`npm install`或`yarn add`安装它们。 2. **配置子应用入口**: 在子应用的`vite.config.js`中,配置好构建目标,例如创建一个名为`index.html`的模板,并指定你的`main.js`作为入口点。这通常是通过修改`export default defineConfig`函数来完成的。 ```javascript import { create vite } from '@qiankun/vite-extension'; // ... export default await create({ // ...其他配置 ssr: { entry: resolve('src/main.js'), template: path.resolve(__dirname, 'public/index.html') } }); ``` 3. **启动子应用与微应用**: 主应用需要添加Qiankun插件来加载和管理子应用。在主应用的`qiankun.config.js`中配置子应用信息,然后启动Vite服务。子应用也需要启动,作为独立的服务运行。 4. **注册子应用**: 在主应用的`app.js`或相关入口文件中,使用Qiankun提供的API注册子应用。这可以动态地从服务器获取子应用的信息(如URL),或者静态地配置在`qiankun.config.js`中。 5. **打包**: 当对子应用有改动时,运行子应用的Vite命令进行更新,比如`vite build`。Qiankun会自动检测子应用的变化并在主应用中进行更新。 6. **部署**: 子应用打包完成后,将其部署到相应的域名或路径下。在Qiankun的配置中,你需要将子应用的实际地址提供给主应用。 重要提示:在实际操作中,还需要注意路由映射、跨域配置以及公共模块的共享等问题。
      评论
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

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

      抵扣说明:

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

      余额充值