Skip to content

Commit 829f32b

Browse files
committed
feat: give warning if there is no proper plugin execution order
1 parent a3cbf69 commit 829f32b

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

Diff for: packages/@vue/cli-shared-utils/lib/pluginOrder.js

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
// @ts-check
2+
const { warn } = require('./logger')
23
const DEFAULT_STAGE = 100
34

45
/** @typedef {{after?: string|Array<string>, stage?: number}} Apply */
@@ -93,20 +94,19 @@ function topologicalSorting (plugins) {
9394
plugins.forEach(p => {
9495
const after = getOrderParams(p).after
9596
indegrees.set(p, after.size)
96-
if (after.size > 0) {
97-
for (const id of after) {
98-
const prerequisite = pluginsMap.get(id)
99-
// remove invalid data
100-
if (!prerequisite) {
101-
indegrees.set(p, indegrees.get(p) - 1)
102-
continue
103-
}
104-
105-
if (!graph.has(prerequisite)) {
106-
graph.set(prerequisite, [])
107-
}
108-
graph.get(prerequisite).push(p)
97+
if (after.size === 0) return
98+
for (const id of after) {
99+
const prerequisite = pluginsMap.get(id)
100+
// remove invalid data
101+
if (!prerequisite) {
102+
indegrees.set(p, indegrees.get(p) - 1)
103+
continue
109104
}
105+
106+
if (!graph.has(prerequisite)) {
107+
graph.set(prerequisite, [])
108+
}
109+
graph.get(prerequisite).push(p)
110110
}
111111
})
112112

@@ -130,9 +130,11 @@ function topologicalSorting (plugins) {
130130
})
131131
}
132132
const valid = res.length === plugins.length
133-
// TODO: show warning to user when invalid? or return plugins directly
134-
// return valid ? res : []
135-
return valid ? res : plugins
133+
if (!valid) {
134+
warn(`No proper plugin execution order found.`)
135+
return plugins
136+
}
137+
return res
136138
}
137139

138140
/**

0 commit comments

Comments
 (0)