Skip to content

Commit 13c8c59

Browse files
fix: make alias can be overridden properly (#1648)
Co-authored-by: meteorlxy <meteor.lxy@foxmail.com>
1 parent aa20eaa commit 13c8c59

File tree

16 files changed

+98
-47
lines changed

16 files changed

+98
-47
lines changed

e2e/docs/.vuepress/config.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,13 @@ export default defineUserConfig({
8383
},
8484

8585
plugins: [fooPlugin],
86+
87+
// The alias entries are intentionally ordered by key length to ensure
88+
// that more specific aliases (e.g., '@dir/a.js') take precedence over
89+
// less specific ones (e.g., '@dir'). Do not reorder these entries.
90+
alias: {
91+
'@dir/a.js': path.resolve(__dirname, '../../modules/dir2/a.js'),
92+
'@dir': path.resolve(__dirname, '../../modules/dir1'),
93+
'@dir/b.js': path.resolve(__dirname, '../../modules/dir2/b.js'),
94+
},
8695
})

e2e/docs/hooks/alias/dir.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<p id="result">{{result}}</p>
2+
3+
<script setup>
4+
import { result } from '@dir/c.js'
5+
</script>

e2e/docs/hooks/alias/override.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<p id="a">{{aResult}}</p>
2+
<p id="b">{{bResult}}</p>
3+
4+
<script setup>
5+
import { result as aResult } from '@dir/a.js'
6+
import { result as bResult } from '@dir/b.js'
7+
</script>

e2e/modules/dir1/a.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const result = 'dir1 > a'

e2e/modules/dir1/b.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const result = 'dir1 > b'

e2e/modules/dir1/c.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const result = 'dir1 > c'

e2e/modules/dir2/a.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const result = 'dir2 > a'

e2e/modules/dir2/b.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const result = 'dir2 > b'

e2e/tests/hooks/alias/dir.spec.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import { expect, test } from '@playwright/test'
2+
3+
test('should apply alias to subpath', async ({ page }) => {
4+
await page.goto('hooks/alias/dir.html')
5+
await expect(page.locator('#result')).toHaveText('dir1 > c')
6+
})
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { expect, test } from '@playwright/test'
2+
3+
test('longer aliases should override shorter ones', async ({ page }) => {
4+
await page.goto('hooks/alias/override.html')
5+
await expect(page.locator('#a')).toHaveText('dir2 > a')
6+
await expect(page.locator('#b')).toHaveText('dir2 > b')
7+
})

0 commit comments

Comments
 (0)