Skip to content

Commit 104f9af

Browse files
committed
fix(uni-cli-shared): 排除官方 JavaScript 产物自动导入 #31884
1 parent be466c9 commit 104f9af

2 files changed

Lines changed: 19 additions & 5 deletions

File tree

packages/uni-cli-shared/__tests__/autoImport.spec.ts

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,22 @@ describe('autoImport', () => {
6868
expect(isIncluded('/src/node_modules/uni-app-x-package/index.js')).toBe(
6969
true
7070
)
71-
expect(isIncluded('/src/vendor/uni-cloud-x.es.js')).toBe(false)
72-
expect(isIncluded('C:\\src\\vendor\\uni-cloud-x.es.js')).toBe(false)
73-
expect(isIncluded('/src/vendor/custom-uni-cloud-x.es.js')).toBe(true)
71+
expect(
72+
isIncluded('/framework/@dcloudio/uni-cloud/dist/uni-cloud-x.es.js')
73+
).toBe(false)
74+
expect(
75+
isIncluded('C:\\src\\node_modules\\@dcloudio\\uni-shared\\index.js')
76+
).toBe(false)
77+
expect(isIncluded('/src/@dcloudio-custom/index.js')).toBe(true)
78+
expect(
79+
isIncluded(
80+
'/src/node_modules/.pnpm/@dcloudio+uni-shared@1.0.0/node_modules/@dcloudio/uni-shared/dist/uni-shared.es.js'
81+
)
82+
).toBe(false)
83+
expect(isIncluded('/src/node_modules/@dcloudio/uni-ui/index.ts')).toBe(true)
84+
expect(
85+
isIncluded('/src/node_modules/@dcloudio/uni-ui/index.vue?vue&type=script')
86+
).toBe(true)
7487
expect(isIncluded('/src/store/index.ts')).toBe(true)
7588
expect(isIncluded('/src/store/index.uts')).toBe(true)
7689
expect(isIncluded('/src/pages/index.uvue?vue&type=script')).toBe(true)

packages/uni-cli-shared/src/vite/autoImport.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -352,8 +352,9 @@ export function initAutoImportOptions(
352352
// node_modules 可能包含依赖 auto import 的 uni-app x 源码包,不能恢复 unplugin 的默认排除项。
353353
const exclude: (RegExp | string)[] = [
354354
/[\\/]\.git[\\/]/,
355-
// uni-cloud 的预构建入口内部使用全局 uniCloud,参与自动导入会产生对自身的引用。
356-
/(?:^|[\\/])uni-cloud-x\.es\.js$/,
355+
// @dcloudio 包中的 JS 是自带完整导入的官方产物,正则扫描导出别名或继承类时可能误判,
356+
// 进而产生自引用或重复声明。
357+
/[\\/]@dcloudio[\\/].*\.js$/,
357358
]
358359
if (process.env.UNI_INPUT_DIR) {
359360
exclude.push(

0 commit comments

Comments
 (0)