8000 feat: new global plugin API · sarvex/vue-cli@94ff189 · GitHub
[go: up one dir, main page]

Skip to content
Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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)
0