回滚loader.js,bug: 此写法会导致部分插件写法不规范从而导致加载错误

This commit is contained in:
SmallK111407 2023-09-11 23:35:12 +08:00
parent 0f0d9085ff
commit ba3c12b1b0
1 changed files with 3 additions and 24 deletions

View File

@ -52,28 +52,10 @@ class PluginsLoader {
let pluCount = 0 let pluCount = 0
let packageErr = [] let packageErr = []
for (let File of files) for (let File of files) {
{
let { name: appName, path: appPath } = File
try { try {
let tmp = await import(File.path) let tmp = await import(File.path)
// 如果当前是一个插件 if (tmp.apps) tmp = { ...tmp.apps }
if (tmp.apps) {
// 插件主目录在这里this.watch里已经做了判断所以不用捕获异常
appName = `${appName}/apps`
// 插件路径
appPath = appPath.replace(/\/index\.js$/, "");
// 逐个遍历插件app里的js
for (let app in tmp.apps) {
// 插件目录的功能
const curPlugin = tmp.apps[app]
// 当前目录的功能名 (apps/hello.js)
const curAppName = curPlugin.name
// 监听插件
this.watch(appName, `${curAppName}.js`)
}
tmp = { ...tmp.apps }
}
let isAdd = false let isAdd = false
lodash.forEach(tmp, (p, i) => { lodash.forEach(tmp, (p, i) => {
if (!p.prototype) return if (!p.prototype) return
@ -87,7 +69,7 @@ class PluginsLoader {
this.collectTask(plugin.task) this.collectTask(plugin.task)
this.priority.push({ this.priority.push({
class: p, class: p,
key: `${appName}/${p.name}.js`, key: File.name,
name: plugin.name, name: plugin.name,
priority: plugin.priority priority: plugin.priority
}) })
@ -791,9 +773,6 @@ class PluginsLoader {
if (this.priority[i].key == key) { if (this.priority[i].key == key) {
this.priority[i].class = p this.priority[i].class = p
this.priority[i].priority = plugin.priority this.priority[i].priority = plugin.priority
// 插件更新 (ps.如果不写无法更新插件只能更新example)
this.watcher[`${dirName}.${appName}`] = watcher
break;
} }
} }
}) })