dcloudio / dcloudio/uni-app

uniapp v3使用模块联邦构建产物文件名异常

Open
#5,598 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

### 发行方式

H5

### 具体平台

@module-federation/vite@1.4.1

### 开发环境

Linux

### 项目创建方式

CLI命令行

### 依赖版本

@dcloudio/uni-h5@3.0.0-4030620241128001

### 问题描述

模块联邦构建时输出产物需要依赖虚拟模块,但是`uni-h5`重写了`chunkFileNames`的实现
```
const dirname = path_1.default.relative(inputDir, path_1.default.dirname(chunkInfo.facadeModuleId));
```
导致如果facadeModuleId的值为`virtual:mf-REMOTE_ENTRY_ID`之类的虚拟模块时,等价于`path.diranme('virtual:mf-REMOTE_ENTRY_ID')`。dirname的结果会变成`.`,最终导致文件路径变成`..-remoteEntry.js`

### 重现步骤

1. 新建一个uniapp vue3项目
2. 安装@module-federation/vite
3. 执行pnpm build:h5
4. 观察到dist/build/h5/assets中有三个..-[name].[hash].js的文件

### 期望行为

正常处理虚拟模块

### 实际行为

_No response_

### 截图或录屏

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.