commit
						a1a7f6b44a
					
				|  | @ -52,10 +52,28 @@ 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 | ||||||
|  | @ -69,7 +87,7 @@ class PluginsLoader { | ||||||
|           this.collectTask(plugin.task) |           this.collectTask(plugin.task) | ||||||
|           this.priority.push({ |           this.priority.push({ | ||||||
|             class: p, |             class: p, | ||||||
|             key: File.name, |             key: `${appName}/${p.name}.js`, | ||||||
|             name: plugin.name, |             name: plugin.name, | ||||||
|             priority: plugin.priority |             priority: plugin.priority | ||||||
|           }) |           }) | ||||||
|  | @ -773,6 +791,9 @@ 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; | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       }) |       }) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue