Skip to content

Commit 94ff189

Browse files
author
Guillaume Chau
committed
feat: new global plugin API
1 parent 2e0d86d commit 94ff189

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
module.exports = api => {
2-
require('./project-type')(api)
1+
module.exports = globalApi => {
2+
require('./project-type')(globalApi)
33

4-
if (api.getProject().type === 'vue') {
5-
require('./config')(api)
6-
require('./task')(api)
7-
require('./suggestion')(api)
8-
}
4+
globalApi.inProject(api => {
5+
if (api.getProject().type === 'vue') {
6+
require('./config')(api)
7+
require('./task')(api)
8+
require('./suggestion')(api)
9+
}
10+
})
911
}

packages/@vue/cli-guijs-plugin/lib/project-type.js

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,37 @@ const { getPromptModules } = require('@vue/cli-global-utils/lib/util/createTools
22
const PromptModuleAPI = require('@vue/cli-global-utils/lib/PromptModuleAPI')
33
const { getPresets } = require('@vue/cli-global-utils/lib/util/getPresets')
44
const { getFeatures } = require('@vue/cli-global-utils/lib/util/features')
5-
const { toShortPluginId } = require('@vue/cli-shared-utils')
5+
const {
6+
toShortPluginId,
7+
isPlugin,
8+
isOfficialPlugin,
9+
getPluginLink
10+
} = require('@vue/cli-shared-utils')
611
const { createProject } = require('./create-project')
712

13+
const CLI_SERVICE = '@vue/cli-service'
14+
815
module.exports = api => {
916
api.addProjectType('vue', 'Vue CLI', projectType => {
1017
projectType.logo = '/_plugin/@vue%2Fcli-guijs-plugin/vue-project.png'
1118

1219
// Detect Vue CLI project
13-
projectType.filterProject(({ pkg }) => ({ ...pkg.dependencies, ...pkg.devDependencies })['@vue/cli-service'])
20+
projectType.filterProject = ({ pkg }) => ({ ...pkg.dependencies, ...pkg.devDependencies })['@vue/cli-service']
1421

1522
// Project creation
1623
projectType.onCreate(onCreate)
24+
25+
// Plugins
26+
projectType.hasPlugins(config => {
27+
config.filterPlugin = ({ pkg }) => isPlugin(pkg.name) || pkg.name === CLI_SERVICE
28+
config.isOfficial = ({ pkg }) => isOfficialPlugin(pkg.name) || pkg.name === CLI_SERVICE
29+
config.getLink = ({ pkg }) => {
30+
if (pkg.name === CLI_SERVICE) {
31+
return 'https://cli.vuejs.org/'
32+
}
33+
return getPluginLink(pkg.name)
34+
}
35+
})
1736
})
1837
}
1938

0 commit comments

Comments
 (0)