mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-05-12 14:58:26 -05:00
fix(pluginResolution): support dots in scope names (#4512)
This commit is contained in:
committed by
Haoqun Jiang
parent
9c50971021
commit
8f2d470404
@@ -11,6 +11,7 @@ test('isPlugin', () => {
|
||||
expect(isPlugin('@vue/cli-plugin-foo')).toBe(true)
|
||||
expect(isPlugin('vue-cli-plugin-foo')).toBe(true)
|
||||
expect(isPlugin('@foo/vue-cli-plugin-foo')).toBe(true)
|
||||
expect(isPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(true)
|
||||
})
|
||||
|
||||
test('isOfficialPlugin', () => {
|
||||
@@ -18,12 +19,14 @@ test('isOfficialPlugin', () => {
|
||||
expect(isOfficialPlugin('@vue/cli-plugin-foo')).toBe(true)
|
||||
expect(isOfficialPlugin('vue-cli-plugin-foo')).toBe(false)
|
||||
expect(isOfficialPlugin('@foo/vue-cli-plugin-foo')).toBe(false)
|
||||
expect(isOfficialPlugin('@foo.bar/vue-cli-plugin-foo')).toBe(false)
|
||||
})
|
||||
|
||||
test('toShortPluginId', () => {
|
||||
expect(toShortPluginId('@vue/cli-plugin-foo')).toBe('foo')
|
||||
expect(toShortPluginId('vue-cli-plugin-foo')).toBe('foo')
|
||||
expect(toShortPluginId('@foo/vue-cli-plugin-foo')).toBe('foo')
|
||||
expect(toShortPluginId('@foo.bar/vue-cli-plugin-foo')).toBe('foo')
|
||||
})
|
||||
|
||||
test('resolvePluginId', () => {
|
||||
@@ -31,10 +34,12 @@ test('resolvePluginId', () => {
|
||||
expect(resolvePluginId('@vue/cli-plugin-foo')).toBe('@vue/cli-plugin-foo')
|
||||
expect(resolvePluginId('vue-cli-plugin-foo')).toBe('vue-cli-plugin-foo')
|
||||
expect(resolvePluginId('@foo/vue-cli-plugin-foo')).toBe('@foo/vue-cli-plugin-foo')
|
||||
expect(resolvePluginId('@foo.bar/vue-cli-plugin-foo')).toBe('@foo.bar/vue-cli-plugin-foo')
|
||||
|
||||
// scoped short
|
||||
expect(resolvePluginId('@vue/foo')).toBe('@vue/cli-plugin-foo')
|
||||
expect(resolvePluginId('@foo/foo')).toBe('@foo/vue-cli-plugin-foo')
|
||||
expect(resolvePluginId('@foo.bar/foo')).toBe('@foo.bar/vue-cli-plugin-foo')
|
||||
|
||||
// default short
|
||||
expect(resolvePluginId('foo')).toBe('vue-cli-plugin-foo')
|
||||
@@ -45,13 +50,16 @@ test('matchesPluginId', () => {
|
||||
expect(matchesPluginId('@vue/cli-plugin-foo', '@vue/cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('vue-cli-plugin-foo', 'vue-cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('@foo/vue-cli-plugin-foo', '@foo/vue-cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('@foo.bar/vue-cli-plugin-foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
|
||||
|
||||
// short without scope
|
||||
expect(matchesPluginId('foo', '@vue/cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('foo', 'vue-cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('foo', '@foo/vue-cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
|
||||
|
||||
// short with scope
|
||||
expect(matchesPluginId('@vue/foo', '@vue/cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('@foo/foo', '@foo/vue-cli-plugin-foo')).toBe(true)
|
||||
expect(matchesPluginId('@foo.bar/foo', '@foo.bar/vue-cli-plugin-foo')).toBe(true)
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
const pluginRE = /^(@vue\/|vue-|@[\w-]+\/vue-)cli-plugin-/
|
||||
const scopeRE = /^@[\w-]+\//
|
||||
const pluginRE = /^(@vue\/|vue-|@[\w-]+(\.)?[\w-]+\/vue-)cli-plugin-/
|
||||
const scopeRE = /^@[\w-]+(\.)?[\w-]+\//
|
||||
const officialRE = /^@vue\//
|
||||
|
||||
const officialPlugins = [
|
||||
|
||||
Reference in New Issue
Block a user