Skip to content

Commit 8f2d470

Browse files
ma-jahnhaoqunjiang
authored andcommitted
fix(pluginResolution): support dots in scope names (#4512)
1 parent 9c50971 commit 8f2d470

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

packages/@vue/cli-shared-utils/__tests__/pluginResolution.spec.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,35 @@ test('isPlugin', () => {
1111
expect(isPlugin('@vue/cli-plugin-foo')).toBe(true)
1212
expect(isPlugin('vue-cli-plugin-foo')).toBe(true)
1313
expect(isPlugin('@foo/vue-cli-plugin-foo')).toBe(true)
14+
expect(isPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(true)
1415
})
1516

1617
test('isOfficialPlugin', () => {
1718
expect(isOfficialPlugin('@vue/foo')).toBe(false)
1819
expect(isOfficialPlugin('@vue/cli-plugin-foo')).toBe(true)
1920
expect(isOfficialPlugin('vue-cli-plugin-foo')).toBe(false)
2021
expect(isOfficialPlugin('@foo/vue-cli-plugin-foo')).toBe(false)
22+
expect(isOfficialPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(false)
2123
})
2224

2325
test('toShortPluginId', () => {
2426
expect(toShortPluginId('@vue/cli-plugin-foo')).toBe('foo')
2527
expect(toShortPluginId('vue-cli-plugin-foo')).toBe('foo')
2628
expect(toShortPluginId('@foo/vue-cli-plugin-foo')).toBe('foo')
29+
expect(toShortPluginId('@foo.bar/vue-cli-plugin-foo')).toBe('foo')
2730
})
2831

2932
test('resolvePluginId', () => {
3033
// already full
3134
expect(resolvePluginId('@vue/cli-plugin-foo')).toBe('@vue/cli-plugin-foo')
3235
expect(resolvePluginId('vue-cli-plugin-foo')).toBe('vue-cli-plugin-foo')
3336
expect(resolvePluginId('@foo/vue-cli-plugin-foo')).toBe('@foo/vue-cli-plugin-foo')
37+
expect(resolvePluginId('@foo.bar/vue-cli-plugin-foo')).toBe('@foo.bar/vue-cli-plugin-foo')
3438

3539
// scoped short
3640
expect(resolvePluginId('@vue/foo')).toBe('@vue/cli-plugin-foo')
3741
expect(resolvePluginId('@foo/foo')).toBe('@foo/vue-cli-plugin-foo')
42+
expect(resolvePluginId('@foo.bar/foo')).toBe('@foo.bar/vue-cli-plugin-foo')
3843

3944
// default short
4045
expect(resolvePluginId('foo')).toBe('vue-cli-plugin-foo')
@@ -45,13 +50,16 @@ test('matchesPluginId', () => {
4550
expect(matchesPluginId('@vue/cli-plugin-foo', '@vue/cli-plugin-foo')).toBe(true)
4651
expect(matchesPluginId('vue-cli-plugin-foo', 'vue-cli-plugin-foo')).toBe(true)
4752
expect(matchesPluginId('@foo/vue-cli-plugin-foo', '@foo/vue-cli-plugin-foo')).toBe(true)
53+
expect(matchesPluginId('@foo.bar/vue-cli-plugin-foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
4854

4955
// short without scope
5056
expect(matchesPluginId('foo', '@vue/cli-plugin-foo')).toBe(true)
5157
expect(matchesPluginId('foo', 'vue-cli-plugin-foo')).toBe(true)
5258
expect(matchesPluginId('foo', '@foo/vue-cli-plugin-foo')).toBe(true)
59+
expect(matchesPluginId('foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
5360

5461
// short with scope
5562
expect(matchesPluginId('@vue/foo', '@vue/cli-plugin-foo')).toBe(true)
5663
expect(matchesPluginId('@foo/foo', '@foo/vue-cli-plugin-foo')).toBe(true)
64+
expect(matchesPluginId('@foo.bar/foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
5765
})

packages/@vue/cli-shared-utils/lib/pluginResolution.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
const pluginRE = /^(@vue\/|vue-|@[\w-]+\/vue-)cli-plugin-/
2-
const scopeRE = /^@[\w-]+\//
1+
const pluginRE = /^(@vue\/|vue-|@[\w-]+(\.)?[\w-]+\/vue-)cli-plugin-/
2+
const scopeRE = /^@[\w-]+(\.)?[\w-]+\//
33
const officialRE = /^@vue\//
44

55
const officialPlugins = [

0 commit comments

Comments
 (0)