const fs = require('fs');
const path = require('path');
global.nv_plugin_list = ()=>{
/*返回:
存在 plugin.json 才处理进去
[
{
"folder": "xxxxx",
"error": Boolean, //不存在 function.js
"name": "客户端渲染主题示例",
"url": "",
"description": "nvPress自带默认主题",
"version": "0.0.1",
"author": "PANDA Studio",
"author_url": "",
},
...
]
*/
const pluginDir = path.join(process.cwd(),'./nv-plugins')
const all_plugins = [];
try{
fs.readdirSync(pluginDir).forEach(folderName=>{
const filePath = path.join(pluginDir,folderName);
if ( fs.statSync(filePath).isDirectory() ) {
const pluginInfo = path.join(filePath,'./plugin.json');
const pluginEntrance = path.join(filePath,'./function.js');
try{
if ( fs.statSync(pluginInfo).isFile() ) {
try {
var pluginJson = require(pluginInfo);
} catch(e) {
pluginJson = {error:true};
// console.log("插件plugin.json格式错误:"+folderName)
}
all_plugins.push({
folder: folderName,
error: !fs.statSync(pluginEntrance).isFile(),
...pluginJson,
})
}
} catch(e) {
all_plugins.push({
folder: folderName,
error: true,
})
}
}
})
} catch(e) {
console.log("读取插件信息异常:"+e)
}
return all_plugins;
}