Skip to content

Commit

Permalink
fix(pluginResolution): support dots in scope names (#4512)
Browse files Browse the repository at this point in the history
(cherry picked from commit 8f2d470)
  • Loading branch information
ma-jahn authored and sodatea committed Oct 10, 2019
1 parent 8feaef0 commit e71c884
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
Expand Up @@ -11,30 +11,35 @@ 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', () => {
expect(isOfficialPlugin('@vue/foo')).toBe(false)
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', () => {
// already full
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')
Expand All @@ -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)
})
4 changes: 2 additions & 2 deletions packages/@vue/cli-shared-utils/lib/pluginResolution.js
@@ -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 = [
Expand Down

0 comments on commit e71c884

Please sign in to comment.