neo-cmp-cli 1.10.2 → 1.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index2.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./_virtual/index.js"),s=require("figlet"),o=require("yargs"),n=require("chalk"),a=require("inquirer"),t=require("ora"),i=require("./main2.js"),p=require("./neo/env.js"),c=require("./package.json.js");var m;exports.__require=function(){if(m)return e.__exports;m=1;const r=s,l=o,u=n,d=a,g=t,{neoInit:h,neoInitByCopy:y,inspect:b,neoConfigInit:v,validateProjectName:C,getCmpTypeByDir:f,NeoService:x,NeoLoginService:$,hasNeoProject:T,consoleTag:U,errorLog:j,successLog:_}=i.__require(),w=i.__require(),{getNeoCrmAPI:q}=p.__require(),N=c.default,M=r.textSync("neo",{font:"Lean"}),S=w.projectConfig,D=function(e){return u.green(u.bold(e))},R={"config init":"初始化配置文件",dev:"开启本地调试模式",build:"构建生产环境代码",build2lib:"构建 UMD 模块",build2esm:"构建 ESM 模块",publish2oss:"发布到 OSS",inspect:"输出配置文件",open:"打开项目"},k={...R,init:"初始化自定义组件项目",login:"登录 NeoCRM 平台",logout:"登出 NeoCRM 平台","create project":"创建自定义组件项目","create cmp":"创建自定义组件",linkDebug:"开启外链调试模式","pull cmp":"拉取线上自定义组件","delete cmp":"删除线上自定义组件",preview:"预览自定义组件","push cmp":"发布自定义组件到平台"};return l.middleware(function(e){if(e.help||e.version)return;const s=function(e){if(!e._||0===e._.length)return"";const s=e._.join(" ");if(k[s])return s;const o=e._[0];return k[o]?o:s||o}(e);if(!s)return;const o=k[s]||s;R[s]&&(console.log(u.green(M)),console.log(u.green(`当前版本:v${N.version}.\n`))),console.log(""),console.log(u.cyan(`执行命令: ${o}`)),console.log("")}).command("init [options]","根据模板创建一个自定义组件",e=>{e.reset().usage(D("Usage")+": $0 init [options]").option("type",{alias:"t",describe:"自定义组件类型(react ts 技术栈/ vue2.0 技术栈/ react 技术栈)"}).option("name",{alias:"n",describe:"自定义组件项目名称"}).alias("h","help")},e=>{if(e.type&&e.name)T()&&(j(`${U}创建自定义组件失败,当前目录(${process.cwd()})已经是一个自定义组件项目,请勿重复创建。`),process.exit(1)),"github"===e.mode?h(e.type,e.name):y(e.type,e.name);else{const s=[],o=[{name:"react&ts 自定义组件",value:"react-ts",short:"react-ts"},{name:"Neo 自定义组件(使用平台实体数据源)",value:"neo",short:"neo"},{name:"antd 自定义组件",value:"antd",short:"antd"},{name:"echarts 自定义组件",value:"echarts",short:"echarts"},{name:"vue2 自定义组件",value:"vue2",short:"vue2"}];e.type||s.push({name:"type",type:"list",message:"请选择您要创建的自定义组件类型: ",default:"react-ts",choices:o}),e.name||s.push({name:"name",type:"input",message:"请设置自定义组件项目名称(默认 neoCustomCmp):",default:"neoCustomCmp"}),d.prompt(s).then(s=>{const{isValid:o,errors:n}=C(s.name);o||(j(n.join("\n")),process.exit(1)),"github"===e.mode?h(s.type,s.name):y(s.type,s.name)})}}).command("config init","创建 neo.config.js 配置文件",e=>{e.reset().usage(D("Usage")+": $0 config init").alias("h","help")},()=>{v("neo.config.js")}).command("login","登录 NeoCRM 平台(OAuth2 授权)",e=>{e.reset().usage(D("Usage")+": $0 login").alias("h","help")},()=>{const e=[{name:"env",type:"list",message:"请选择您要登录的环境:",default:"cd",choices:[{name:"线上生产环境(crm.xiaoshouyi.com)",value:"production"},{name:"灰度环境(crm-gray.xiaoshouyi.com)",value:"gray"},{name:"沙盒环境(crm-sandbox.xiaoshouyi.com)",value:"sandbox"},{name:"开发环境(crm-cd.xiaoshouyi.com)",value:"cd"},{name:"自定义环境(在neo.config.js / neoConfig 中自行配置)",value:"custom"}]}];d.prompt(e).then(async e=>{const s=q(e.env,S.neoConfig);try{const e=new $(s);await e.login(),process.exit(0)}catch(e){j(`\n登录失败: ${e.message||e.msg}`),process.exit(1)}})}).command("logout","登出 NeoCRM 平台",e=>{e.reset().usage(D("Usage")+": $0 logout").alias("h","help")},async()=>{try{const e=new $;await e.logout(),process.exit(0)}catch(e){j(`\n登出失败: ${e.message||e.msg}`),process.exit(1)}}).command("create","创建项目或者组件",e=>e.command("project [options]","创建自定义组件项目(含工程代码)",e=>{e.reset().usage(D("Usage")+": $0 project [options]").option("name",{alias:"n",describe:"自定义组件项目名称"}).alias("h","help")},e=>{if(e.name)w.createCmpProjectByTemplate(e.name);else{const e=[{name:"name",type:"input",message:"请设置自定义组件项目名称:"}];d.prompt(e).then(e=>{const{isValid:s,errors:o}=C(e.name);s||(j(o.join("\n")),process.exit(1)),e.name?w.createCmpProjectByTemplate(e.name):(j("自定义组件项目名称不能为空。"),process.exit(1))})}}).command("cmp [options]","创建自定义组件",e=>{e.reset().usage(D("Usage")+": $0 cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.createCmpByTemplate(e.name);else{const e=[{name:"name",type:"input",message:"请设置自定义组件名称:"}];d.prompt(e).then(e=>{e.name?w.createCmpByTemplate(e.name):(j("自定义组件名称不能为空。"),process.exit(1))})}})).command("pull cmp [options]","拉取线上自定义组件",e=>{e.reset().usage(D("Usage")+": $0 pull cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},async e=>{if(e.name)w.pullCmp(e.name);else{const e=new x,s=g("正在拉取线上自定义组件列表...").start(),o=await e.getCustomCmpList();0===o.length&&(j("当前租户暂无任何自定义组件。"),process.exit(1)),s.stop("线上自定义组件列表拉取成功。");const n=[{name:"cmpType",type:"list",message:"请选择要拉取的自定义组件:",choices:o.map(e=>({name:`${e.label}(${e.cmpType})`,value:e.cmpType}))}];d.prompt(n).then(s=>{s.cmpType?w.pullCmp(s.cmpType,e):(j("自定义组件名称不能为空。"),process.exit(1))})}}).command("delete cmp [options]","删除线上自定义组件",e=>{e.reset().usage(D("Usage")+": $0 delete cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},async e=>{if(e.name)w.deleteCmp(e.name);else{const e=new x,s=g("正在获取线上自定义组件列表...").start(),o=await e.getCustomCmpList();0===o.length&&(j("当前租户暂无任何自定义组件。"),process.exit(1)),s.stop("线上自定义组件列表获取成功。");const n=[{name:"cmpType",type:"list",message:"请选择要删除的自定义组件:",choices:o.map(e=>({name:`${e.label}(${e.cmpType})`,value:e.cmpType}))}];d.prompt(n).then(s=>{s.cmpType?w.deleteCmp(s.cmpType,e):(j("自定义组件名称不能为空。"),process.exit(1))})}}).command("preview [options]","预览指定自定义组件(仅预览组件本身内容)",e=>{e.reset().usage(D("Usage")+": $0 preview [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.previewCmp(e.name);else{const e=f();0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要预览的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要预览的自定义组件。"),process.exit(1)),w.previewCmp(e.cmpType)})}}).command("dev","开启本地调试模式",e=>{e.reset().usage(D("Usage")+": $0 dev").alias("h","help")},()=>{w.dev()}).command("linkDebug","开启外链调试模式(在线上页面设计器端调试)",e=>{e.reset().usage(D("Usage")+": $0 linkDebug").alias("h","help")},e=>{w.linkDebug()}).command("build","构建生产环境代码",e=>{e.reset().usage(D("Usage")+": $0 build").alias("h","help")},e=>{w.build()}).command("build2lib","构建 UMD 模块",e=>{e.reset().usage(D("Usage")+": $0 build2lib").alias("h","help")},e=>{w.build2lib()}).command("publish2oss [options]","发布到oss",e=>{e.reset().usage(D("Usage")+": $0 publish2oss [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.publish2oss(e.name);else{const e=f();0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要发布的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要发布的自定义组件。"),process.exit(1)),w.publish2oss(e.cmpType)})}}).command("push cmp [options]","构建并发布自定义组件到 NeoCRM 平台",e=>{e.reset().usage(D("Usage")+": $0 push cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.pushCmp(e.name);else{const e=f();0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要发布的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要发布的自定义组件。"),process.exit(1)),w.pushCmp(e.cmpType)})}}).command("build2esm","构建 ESM 模块",e=>{e.reset().usage(D("Usage")+": $0 build2esm").alias("h","help")},()=>{w.build2esm()}).command("inspect","输出当前配置文件",e=>{e.reset().usage(D("Usage")+": $0 inspect").option("type",{alias:"t",describe:"环境类型(本地调试环境/生产环境/library构建环境)",default:"build"}).alias("h","help")},e=>{b(e.type)}).command("open [options]","使用 Cursor 或 VSCode 打开项目",e=>{e.reset().usage(D("Usage")+": $0 open [options]").option("editor",{alias:"e",describe:"编辑器类型(cursor/vscode/auto),默认为 auto(自动检测)",default:"auto",choices:["cursor","vscode","code","auto"]}).option("name",{alias:"n",describe:"要打开的项目名称,默认为当前目录"}).alias("h","help")},e=>{w.openEditor(e.editor,e.name)}).alias("h","help").alias("v","version").strict().fail((e,s,o)=>{j(`\n运行命令时发生错误: ${e}。\n`),console.log(D("当前可用命令列表:")),console.log("");[{cmd:"init [options]",desc:"根据模板创建一个自定义组件"},{cmd:"create project [options]",desc:"创建自定义组件项目(含工程代码)"},{cmd:"create cmp [options]",desc:"创建自定义组件"},{cmd:"preview [options]",desc:"预览指定自定义组件(仅预览组件本身内容)"},{cmd:"linkDebug",desc:"开启外链调试模式(在线上页面设计器端调试)"},{cmd:"login",desc:"登录 NeoCRM 平台(OAuth2 授权)"},{cmd:"logout",desc:"登出 NeoCRM 平台"},{cmd:"pull cmp [options]",desc:"拉取线上自定义组件"},{cmd:"delete cmp [options]",desc:"删除线上自定义组件"},{cmd:"push cmp [options]",desc:"构建并发布自定义组件到 NeoCRM 平台"},{cmd:"open [options]",desc:"使用 Cursor 或 VSCode 打开项目"}].forEach(({cmd:e,desc:s})=>{console.log(` ${u.cyan(e.padEnd(25))} ${s}`)}),console.log(""),console.log(`使用 ${u.cyan("neo <command> --help")} 查看具体命令的帮助信息。`),console.log(""),process.exit(1)}).help().updateStrings({"Usage:":D("Usage:"),"Commands:":D("Commands:"),"Options:":D("Options:")}).argv,e.__exports};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./_virtual/index.js"),s=require("figlet"),o=require("yargs"),n=require("chalk"),a=require("inquirer"),t=require("ora"),i=require("./main2.js"),p=require("./neo/env.js"),c=require("./package.json.js");var m;exports.__require=function(){if(m)return e.__exports;m=1;const r=s,l=o,u=n,d=a,g=t,{neoInit:h,neoInitByCopy:y,inspect:b,neoConfigInit:v,validateProjectName:C,getCmpTypeByDir:f,NeoService:x,NeoLoginService:$,hasNeoProject:T,consoleTag:U,errorLog:j,successLog:_}=i.__require(),w=i.__require(),{getNeoCrmAPI:q}=p.__require(),N=c.default,M=r.textSync("neo",{font:"Lean"}),S=w.projectConfig,D=function(e){return u.green(u.bold(e))},R={"config init":"初始化配置文件",dev:"开启本地调试模式",build:"构建生产环境代码",build2lib:"构建 UMD 模块",build2esm:"构建 ESM 模块",publish2oss:"发布到 OSS",inspect:"输出配置文件",open:"打开项目"},k={...R,init:"初始化自定义组件项目",login:"登录 NeoCRM 平台",logout:"登出 NeoCRM 平台","create project":"创建自定义组件项目","create cmp":"创建自定义组件",linkDebug:"开启外链调试模式","pull cmp":"拉取线上自定义组件","delete cmp":"删除线上自定义组件",preview:"预览自定义组件","push cmp":"发布自定义组件到平台"};return l.middleware(function(e){if(e.help||e.version)return;const s=function(e){if(!e._||0===e._.length)return"";const s=e._.join(" ");if(k[s])return s;const o=e._[0];return k[o]?o:s||o}(e);if(!s)return;const o=k[s]||s;R[s]&&(console.log(u.green(M)),console.log(u.green(`当前版本:v${N.version}.\n`))),console.log(""),console.log(u.cyan(`执行命令: ${o}`)),console.log("")}).command("init [options]","根据模板创建一个自定义组件",e=>{e.reset().usage(D("Usage")+": $0 init [options]").option("type",{alias:"t",describe:"自定义组件类型(react ts 技术栈/ vue2.0 技术栈/ react 技术栈)"}).option("name",{alias:"n",describe:"自定义组件项目名称"}).alias("h","help")},e=>{if(e.type&&e.name)T()&&(j(`${U}创建自定义组件失败,当前目录(${process.cwd()})已经是一个自定义组件项目,请勿重复创建。`),process.exit(1)),"github"===e.mode?h(e.type,e.name):y(e.type,e.name);else{const s=[],o=[{name:"react&ts 自定义组件",value:"react-ts",short:"react-ts"},{name:"Neo 自定义组件(使用平台实体数据源)",value:"neo",short:"neo"},{name:"antd 自定义组件",value:"antd",short:"antd"},{name:"echarts 自定义组件",value:"echarts",short:"echarts"},{name:"vue2 自定义组件",value:"vue2",short:"vue2"}];e.type||s.push({name:"type",type:"list",message:"请选择您要创建的自定义组件类型: ",default:"react-ts",choices:o}),e.name||s.push({name:"name",type:"input",message:"请设置自定义组件项目名称(默认 neoCustomCmp):",default:"neoCustomCmp"}),d.prompt(s).then(s=>{const{isValid:o,errors:n}=C(s.name);o||(j(n.join("\n")),process.exit(1)),"github"===e.mode?h(s.type,s.name):y(s.type,s.name)})}}).command("config init","创建 neo.config.js 配置文件",e=>{e.reset().usage(D("Usage")+": $0 config init").alias("h","help")},()=>{v("neo.config.js")}).command("login","登录 NeoCRM 平台(OAuth2 授权)",e=>{e.reset().usage(D("Usage")+": $0 login").alias("h","help")},()=>{const e=[{name:"env",type:"list",message:"请选择您要登录的环境:",default:"cd",choices:[{name:"线上生产环境(crm.xiaoshouyi.com)",value:"production"},{name:"灰度环境(crm-gray.xiaoshouyi.com)",value:"gray"},{name:"沙盒环境(crm-sandbox.xiaoshouyi.com)",value:"sandbox"},{name:"开发环境(crm-cd.xiaoshouyi.com)",value:"cd"},{name:"自定义环境(在neo.config.js / neoConfig 中自行配置)",value:"custom"}]}];d.prompt(e).then(async e=>{const s=q(e.env,S.neoConfig);try{const e=new $(s);await e.login(),process.exit(0)}catch(e){j(`\n登录失败: ${e.message||e.msg}`),process.exit(1)}})}).command("logout","登出 NeoCRM 平台",e=>{e.reset().usage(D("Usage")+": $0 logout").alias("h","help")},async()=>{try{const e=new $;await e.logout(),process.exit(0)}catch(e){j(`\n登出失败: ${e.message||e.msg}`),process.exit(1)}}).command("create","创建项目或者组件",e=>e.command("project [options]","创建自定义组件项目(含工程代码)",e=>{e.reset().usage(D("Usage")+": $0 project [options]").option("name",{alias:"n",describe:"自定义组件项目名称"}).alias("h","help")},e=>{if(e.name)w.createCmpProjectByTemplate(e.name);else{const e=[{name:"name",type:"input",message:"请设置自定义组件项目名称:"}];d.prompt(e).then(e=>{const{isValid:s,errors:o}=C(e.name);s||(j(o.join("\n")),process.exit(1)),e.name?w.createCmpProjectByTemplate(e.name):(j("自定义组件项目名称不能为空。"),process.exit(1))})}}).command("cmp [options]","创建自定义组件",e=>{e.reset().usage(D("Usage")+": $0 cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.createCmpByTemplate(e.name);else{const e=[{name:"name",type:"input",message:"请设置自定义组件名称:"}];d.prompt(e).then(e=>{e.name?w.createCmpByTemplate(e.name):(j("自定义组件名称不能为空。"),process.exit(1))})}})).command("pull cmp [options]","拉取线上自定义组件",e=>{e.reset().usage(D("Usage")+": $0 pull cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},async e=>{if(e.name)w.pullCmp(e.name);else{const e=new x,s=g("正在拉取线上自定义组件列表...").start(),o=await e.getCustomCmpList();0===o.length&&(j("当前租户暂无任何自定义组件。"),process.exit(1)),s.stop("线上自定义组件列表拉取成功。");const n=[{name:"cmpType",type:"list",message:"请选择要拉取的自定义组件:",choices:o.map(e=>({name:`${e.label}(${e.cmpType})`,value:e.cmpType}))}];d.prompt(n).then(s=>{s.cmpType?w.pullCmp(s.cmpType,e):(j("自定义组件名称不能为空。"),process.exit(1))})}}).command("delete cmp [options]","删除线上自定义组件",e=>{e.reset().usage(D("Usage")+": $0 delete cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},async e=>{if(e.name)w.deleteCmp(e.name);else{const e=new x,s=g("正在获取线上自定义组件列表...").start(),o=await e.getCustomCmpList();0===o.length&&(j("当前租户暂无任何自定义组件。"),process.exit(1)),s.stop("线上自定义组件列表获取成功。");const n=[{name:"cmpType",type:"list",message:"请选择要删除的自定义组件:",choices:o.map(e=>({name:`${e.label}(${e.cmpType})`,value:e.cmpType}))}];d.prompt(n).then(s=>{s.cmpType?w.deleteCmp(s.cmpType,e):(j("自定义组件名称不能为空。"),process.exit(1))})}}).command("preview [options]","预览指定自定义组件(仅预览组件本身内容)",e=>{e.reset().usage(D("Usage")+": $0 preview [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.previewCmp(e.name);else{const e=f(S.componentsDir);0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要预览的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要预览的自定义组件。"),process.exit(1)),w.previewCmp(e.cmpType)})}}).command("dev","开启本地调试模式",e=>{e.reset().usage(D("Usage")+": $0 dev").alias("h","help")},()=>{w.dev()}).command("linkDebug","开启外链调试模式(在线上页面设计器端调试)",e=>{e.reset().usage(D("Usage")+": $0 linkDebug").alias("h","help")},e=>{w.linkDebug()}).command("build","构建生产环境代码",e=>{e.reset().usage(D("Usage")+": $0 build").alias("h","help")},e=>{w.build()}).command("build2lib","构建 UMD 模块",e=>{e.reset().usage(D("Usage")+": $0 build2lib").alias("h","help")},e=>{w.build2lib()}).command("publish2oss [options]","发布到oss",e=>{e.reset().usage(D("Usage")+": $0 publish2oss [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.publish2oss(e.name);else{const e=f(S.componentsDir);0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要发布的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要发布的自定义组件。"),process.exit(1)),w.publish2oss(e.cmpType)})}}).command("push cmp [options]","构建并发布自定义组件到 NeoCRM 平台",e=>{e.reset().usage(D("Usage")+": $0 push cmp [options]").option("name",{alias:"n",describe:"自定义组件名称"}).alias("h","help")},e=>{if(e.name)w.pushCmp(e.name);else{const e=f(S.componentsDir);0===e.length&&(j("当前自定义组件目录中未找到自定义组件。(./src/components 目录下)"),process.exit(1));const s=[{name:"cmpType",type:"list",message:"请选择要发布的自定义组件:",choices:e.map(e=>({name:e,value:e}))}];d.prompt(s).then(e=>{e.cmpType||(j("未选择要发布的自定义组件。"),process.exit(1)),w.pushCmp(e.cmpType)})}}).command("build2esm","构建 ESM 模块",e=>{e.reset().usage(D("Usage")+": $0 build2esm").alias("h","help")},()=>{w.build2esm()}).command("inspect","输出当前配置文件",e=>{e.reset().usage(D("Usage")+": $0 inspect").option("type",{alias:"t",describe:"环境类型(本地调试环境/生产环境/library构建环境)",default:"build"}).alias("h","help")},e=>{b(e.type)}).command("open [options]","使用 Cursor 或 VSCode 打开项目",e=>{e.reset().usage(D("Usage")+": $0 open [options]").option("editor",{alias:"e",describe:"编辑器类型(cursor/vscode/auto),默认为 auto(自动检测)",default:"auto",choices:["cursor","vscode","code","auto"]}).option("name",{alias:"n",describe:"要打开的项目名称,默认为当前目录"}).alias("h","help")},e=>{w.openEditor(e.editor,e.name)}).alias("h","help").alias("v","version").strict().fail((e,s,o)=>{j(`\n运行命令时发生错误: ${e}。\n`),console.log(D("当前可用命令列表:")),console.log("");[{cmd:"init [options]",desc:"根据模板创建一个自定义组件"},{cmd:"create project [options]",desc:"创建自定义组件项目(含工程代码)"},{cmd:"create cmp [options]",desc:"创建自定义组件"},{cmd:"preview [options]",desc:"预览指定自定义组件(仅预览组件本身内容)"},{cmd:"linkDebug",desc:"开启外链调试模式(在线上页面设计器端调试)"},{cmd:"login",desc:"登录 NeoCRM 平台(OAuth2 授权)"},{cmd:"logout",desc:"登出 NeoCRM 平台"},{cmd:"pull cmp [options]",desc:"拉取线上自定义组件"},{cmd:"delete cmp [options]",desc:"删除线上自定义组件"},{cmd:"push cmp [options]",desc:"构建并发布自定义组件到 NeoCRM 平台"},{cmd:"open [options]",desc:"使用 Cursor 或 VSCode 打开项目"}].forEach(({cmd:e,desc:s})=>{console.log(` ${u.cyan(e.padEnd(25))} ${s}`)}),console.log(""),console.log(`使用 ${u.cyan("neo <command> --help")} 查看具体命令的帮助信息。`),console.log(""),process.exit(1)}).help().updateStrings({"Usage:":D("Usage:"),"Commands:":D("Commands:"),"Options:":D("Options:")}).argv,e.__exports};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,d={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",echarts:"5.4.2",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0","video-react":"0.14.1",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-ui-component-web":"^1.0.0","neo-ui-common":"^1.0.0","neo-open-api":"^1.1.9",amis:"^1.1.5"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];s&&Object.keys(s).length<3?(window.__NeoCommonModules[e]=Object.assign(window.__NeoCommonModules[e],n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)):window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(d).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("lodash");var e,n;exports.__require=function(){if(n)return e;n=1;const s=o,d={react:"^16.13.1","react-dom":"^16.13.1",mobx:"^6.3.0","mobx-react":"^7.0.0","mobx-state-tree":"^5.4.0",echarts:"5.4.2",antd:"4.9.4","antd-mobile":"2.3.4","@ant-design/icons":"^4.8.0","video-react":"0.14.1",axios:"^0.27.2",classnames:"^2.3.2",qs:"^6.11.0",lodash:"^4.17.21","neo-ui-component-web":"^1.0.0","neo-ui-common":"^1.0.0","neo-open-api":"^1.1.9",amis:"^1.1.5"};return e={initNeoRequire:()=>{window.neoRequire||(window.neoRequire=o=>window.__NeoCommonModules[o]||window[o])},addNeoCommonModules:o=>{if(window.__NeoCommonModules||(window.__NeoCommonModules={}),isPlainObject(o)){Object.keys(o).forEach(e=>{const n=o[e],s=window.__NeoCommonModules[e];if(!Object.isFrozen(s)&&s&&Object.keys(s).length<3)try{window.__NeoCommonModules[e]=Object.assign(s,n),void 0!==n.__esModule&&(window.__NeoCommonModules[e].__esModule=n.__esModule),void 0!==n.default&&(window.__NeoCommonModules[e].default=n.default)}catch(o){console.warn(`window.__NeoCommonModules[${e}] Object.assign error:`,o),window.__NeoCommonModules[e]=n}else window.__NeoCommonModules[e]=n})}},addNeoRemoteDeps:o=>{window.__NeoCommonModules||(window.__NeoCommonModules={}),window.__NeoCommonModules.__neoRemoteDeps||(window.__NeoCommonModules.__neoRemoteDeps={}),s.isPlainObject(o)&&(window.__NeoCommonModules.__neoRemoteDeps=Object.assign(window.__NeoCommonModules.__neoRemoteDeps,o))},getExternalsByNeoCommonModules:o=>{const e={};return Object.keys(d).forEach(o=>{e[o]=`commonjs ${o}`}),o&&o.length>0&&o.forEach(o=>{e[o]=`commonjs ${o}`}),e}}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("lodash");const e=require("akfun"),r=require("ora"),t=require("./neoService.js"),s=require("../utils/common.js"),i=require("../utils/pathUtils.js"),o=require("../utils/cmpUtils/getCmpTypeByDir.js"),c=require("../utils/cmpUtils/createCmpByZip.js");var n,a;exports.__require=function(){if(a)return n;a=1;const{getConfigObj:p}=e,u=r,m=t.__require(),{getFramework:l,errorLog:g,successLog:q}=s.__require(),{catchCurPackageJson:f}=i.__require(),_=o.__require(),y=c.__require(),C=l(p(f()).framework);return n=async(e,r)=>{_().indexOf(e)>-1&&(g(`当前项目目录中已存在${e}自定义组件。(./src/components 目录下)`),process.exit(1));const t=u("正在拉取组件...").start();try{let s=r,i=[],o={},c=null;r?(i=r.cmpList||[],o=r.cmpInfoMap||{}):(s=new m,t.info("正在获取自定义组件列表..."),i=await s.getCustomCmpList(),o=s.cmpInfoMap||{}),0===i.length&&(g("拉取失败,当前租户暂无任何自定义组件。",t),process.exit(1)),c=s.getCmpInfoByCmpType(e),c||(g(`拉取失败,当前租户不存在${e}自定义组件。`,t),process.exit(1)),c.framework&&c.framework!==C&&(g(`拉取失败,${e}自定义组件与当前项目技术栈不一致。`,t),process.exit(1));const n=s.getCodeLibByCmpType(e),a=await s.ensureValidToken();await y(n,{token:a,cmpName:e,componentBaseDir:"./src/components"})||(g(`拉取失败,${e}自定义组件源码解析失败,请检查源码文件是否正确。`,t),process.exit(1)),q(`已成功拉取${e}自定义组件!\n`,t)}catch(e){throw g(`拉取自定义组件失败: ${e.message||e.msg}`,t),e}},n};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("lodash");const e=require("akfun"),r=require("ora"),t=require("./neoService.js"),i=require("../utils/common.js"),s=require("../utils/pathUtils.js"),o=require("../utils/cmpUtils/getCmpTypeByDir.js"),n=require("../utils/cmpUtils/createCmpByZip.js"),c=require("../config/index.js");var u,p;exports.__require=function(){if(p)return u;p=1;const{getConfigObj:a}=e,m=r,g=t.__require(),{getFramework:l,errorLog:q,successLog:f}=i.__require(),{catchCurPackageJson:_}=s.__require(),y=o.__require(),C=n.__require(),w=c.__require(),x=l(a(_()).framework);return u=async(e,r)=>{y(w.componentsDir).indexOf(e)>-1&&(q(`当前项目目录中已存在${e}自定义组件。(./src/components 目录下)`),process.exit(1));const t=m("正在拉取组件...").start();try{let i=r,s=[],o={},n=null;r?(s=r.cmpList||[],o=r.cmpInfoMap||{}):(i=new g,t.info("正在获取自定义组件列表..."),s=await i.getCustomCmpList(),o=i.cmpInfoMap||{}),0===s.length&&(q("拉取失败,当前租户暂无任何自定义组件。",t),process.exit(1)),n=i.getCmpInfoByCmpType(e),n||(q(`拉取失败,当前租户不存在${e}自定义组件。`,t),process.exit(1)),n.framework&&n.framework!==x&&(q(`拉取失败,${e}自定义组件与当前项目技术栈不一致。`,t),process.exit(1));const c=i.getCodeLibByCmpType(e),u=await i.ensureValidToken();await C(c,{token:u,cmpName:e,componentBaseDir:w.componentsDir})||(q(`拉取失败,${e}自定义组件源码解析失败,请检查源码文件是否正确。`,t),process.exit(1)),f(`已成功拉取${e}自定义组件!\n`,t)}catch(e){throw q(`拉取自定义组件失败: ${e.message||e.msg}`,t),e}},u};
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.1";const o={version:e};exports.default=o,exports.version=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.3";const o={version:e};exports.default=o,exports.version=e;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("node:fs"),e=require("lodash"),n=require("../common.js"),s=require("../pathUtils.js");var d,m;exports.__require=function(){if(m)return d;m=1;const u=o,{isPlainObject:t}=e,{getRelativePathForWebpack:r}=n.__require(),{resolveToCurrentRoot:l}=s.__require();return d=(o,e)=>{const{exports:n,remoteDeps:s}=o;if(!n&&!s)return"";const d={},m={};Array.isArray(n)&&n.length>0?n.forEach(o=>{d[o]=require(o)}):t(n)&&Object.keys(n).length>0?Object.keys(n).forEach(o=>{const e=r(n[o]);d[o]=`require('${e}')`}):n&&(console.error("exports 格式不正确,请检查 neo.config.js 文件中的 neoCommonModule / exports 配置"),process.exit(1)),Array.isArray(s)&&s.length>0&&e.forEach(o=>{m[o]=s});let i="{\n";const c=Object.entries(d);c.forEach(([o,e],n)=>{const s=n===c.length-1;i+=` "${o}": ${e}${s?"":","}\n`}),i+="}";const _=`\n/**\n * 自定义组件 共享出来的依赖模块\n * 备注:可在其他模块中通过 neoRequire 中使用\n */\nimport { isPlainObject } from 'lodash';\nconst CustomCmpCommonModules = ${i};\nconst CustomCmpRemoteDeps = ${JSON.stringify(m)};\n\n// 用于添加共享的依赖模块\nconst addNeoCommonModules = (modules) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (isPlainObject(modules)) {\n const moduleIds = Object.keys(modules)\n moduleIds.forEach((moduleId) => {\n const curModule = modules[moduleId];\n const curCommonModule = window.__NeoCommonModules[moduleId];\n \n if (curCommonModule && Object.keys(curCommonModule).length < 3) {\n window.__NeoCommonModules[moduleId] = Object.assign(window.__NeoCommonModules[moduleId], curModule);\n\n // 处理模块中的特殊属性\n if (curModule.__esModule !== undefined) {\n window.__NeoCommonModules[moduleId].__esModule = curModule.__esModule;\n }\n if (curModule.default !== undefined) {\n window.__NeoCommonModules[moduleId].default = curModule.default;\n }\n } else {\n window.__NeoCommonModules[moduleId] = curModule;\n }\n })\n }\n}\n\n// 用于添加自定义组件的远程依赖组件(关联使用)\nconst addNeoRemoteDeps = (remoteDeps) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (!window.__NeoCommonModules.__neoRemoteDeps) {\n window.__NeoCommonModules.__neoRemoteDeps = {}\n }\n if (isPlainObject(remoteDeps)) {\n window.__NeoCommonModules.__neoRemoteDeps = Object.assign(window.__NeoCommonModules.__neoRemoteDeps, remoteDeps)\n }\n}\n\naddNeoCommonModules(CustomCmpCommonModules);\naddNeoRemoteDeps(CustomCmpRemoteDeps);\n `,M=l("./.neo-cli");u.existsSync(M)||u.mkdirSync(M);const a=`${M}/commonModules.js`;return u.writeFileSync(a,_),a}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("node:fs"),e=require("lodash"),n=require("../common.js"),s=require("../pathUtils.js");var d,m;exports.__require=function(){if(m)return d;m=1;const r=o,{isPlainObject:u}=e,{getRelativePathForWebpack:t}=n.__require(),{resolveToCurrentRoot:l}=s.__require();return d=(o,e)=>{const{exports:n,remoteDeps:s}=o;if(!n&&!s)return"";const d={},m={};Array.isArray(n)&&n.length>0?n.forEach(o=>{d[o]=require(o)}):u(n)&&Object.keys(n).length>0?Object.keys(n).forEach(o=>{const e=t(n[o]);d[o]=`require('${e}')`}):n&&(console.error("exports 格式不正确,请检查 neo.config.js 文件中的 neoCommonModule / exports 配置"),process.exit(1)),Array.isArray(s)&&s.length>0&&e.forEach(o=>{m[o]=s});let i="{\n";const c=Object.entries(d);c.forEach(([o,e],n)=>{const s=n===c.length-1;i+=` "${o}": ${e}${s?"":","}\n`}),i+="}";const _=`\n/**\n * 自定义组件 共享出来的依赖模块\n * 备注:可在其他模块中通过 neoRequire 中使用\n */\nimport { isPlainObject } from 'lodash';\nconst CustomCmpCommonModules = ${i};\nconst CustomCmpRemoteDeps = ${JSON.stringify(m)};\n\n// 用于添加共享的依赖模块\nconst addNeoCommonModules = (modules) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (isPlainObject(modules)) {\n const moduleIds = Object.keys(modules)\n moduleIds.forEach((moduleId) => {\n const curModule = modules[moduleId];\n const curCommonModule = window.__NeoCommonModules[moduleId];\n \n if (!Object.isFrozen(curCommonModule) && curCommonModule && Object.keys(curCommonModule).length < 3) {\n try {\n // 如果是默认模块对象,则覆盖式合并(保持引用关联)\n window.__NeoCommonModules[moduleId] = Object.assign(curCommonModule, curModule);\n\n // 处理模块中的特殊属性\n if (curModule.__esModule !== undefined) {\n window.__NeoCommonModules[moduleId].__esModule = curModule.__esModule;\n }\n if (curModule.default !== undefined) {\n window.__NeoCommonModules[moduleId].default = curModule.default;\n }\n } catch (error) {\n console.warn('window.__NeoCommonModules[moduleId] Object.assign error:', error);\n window.__NeoCommonModules[moduleId] = curModule;\n }\n } else {\n window.__NeoCommonModules[moduleId] = curModule;\n }\n })\n }\n}\n\n// 用于添加自定义组件的远程依赖组件(关联使用)\nconst addNeoRemoteDeps = (remoteDeps) => {\n if (!window.__NeoCommonModules) {\n window.__NeoCommonModules = {}\n }\n if (!window.__NeoCommonModules.__neoRemoteDeps) {\n window.__NeoCommonModules.__neoRemoteDeps = {}\n }\n if (isPlainObject(remoteDeps)) {\n window.__NeoCommonModules.__neoRemoteDeps = Object.assign(window.__NeoCommonModules.__neoRemoteDeps, remoteDeps)\n }\n}\n\naddNeoCommonModules(CustomCmpCommonModules);\naddNeoRemoteDeps(CustomCmpRemoteDeps);\n `,M=l("./.neo-cli");r.existsSync(M)||r.mkdirSync(M);const a=`${M}/commonModules.js`;return r.writeFileSync(a,_),a}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var o,t;exports.__require=function(){if(t)return o;t=1;const{resolveToCurrentRoot:i}=e.__require(),{getRelativePathForWebpack:n}=r.__require();return o=(e,r,o)=>{const t=i(`${e}/${r}/model`);return`\n// @ts-ignore\nimport { registerNeoEditorModel } from 'neo-register';\nimport CustomCmpModel from '${n(t,o)}';\n\nregisterNeoEditorModel(CustomCmpModel, '${r}');\n `}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var o,t;exports.__require=function(){if(t)return o;t=1;const{resolveToCurrentRoot:i}=e.__require(),{getRelativePathForWebpack:n}=r.__require();return o=(e,r,o,t)=>{const s=i(`${e}/${r}/model`),m="linkDebug"===t?`${r}_temp`:r,u=n(s,o);return"linkDebug"===t?`\n// @ts-ignore\nimport { registerNeoEditorModel } from 'neo-register';\nimport CustomCmpModel from '${u}';\n\nregisterNeoEditorModel(CustomCmpModel, '${m}', { tags: ['自定义组件(本地)'] });\n `:`\n// @ts-ignore\nimport { registerNeoEditorModel } from 'neo-register';\nimport CustomCmpModel from '${u}';\n\nregisterNeoEditorModel(CustomCmpModel, '${m}');\n `}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var t,o;exports.__require=function(){if(o)return t;o=1;const{resolveToCurrentRoot:n}=e.__require(),{getRelativePathForWebpack:i}=r.__require();return t=(e,r,t)=>{const o=n(`${e}/${r}/index`);return`\n// @ts-ignore\nimport { registerNeoCmp } from 'neo-register';\nimport CustomCmp from '${i(o,t)}';\n\nregisterNeoCmp(CustomCmp, '${r}');\n `}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"}),require("node:fs");const e=require("../pathUtils.js"),r=require("../common.js");var t,o;exports.__require=function(){if(o)return t;o=1;const{resolveToCurrentRoot:n}=e.__require(),{getRelativePathForWebpack:i}=r.__require();return t=(e,r,t,o)=>{const s=n(`${e}/${r}/index`),u="linkDebug"===o?`${r}_temp`:r;return`\n// @ts-ignore\nimport { registerNeoCmp } from 'neo-register';\nimport CustomCmp from '${i(s,t)}';\n\nregisterNeoCmp(CustomCmp, '${u}');\n `}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getCmpTypeByDir.js");var r,t;exports.__require=function(){if(t)return r;t=1;const i=e.__require();return r=e=>i().includes(e)};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./getCmpTypeByDir.js"),r=require("../../config/index.js");var i,t;exports.__require=function(){if(t)return i;t=1;const n=e.__require(),o=r.__require();return i=e=>n(o.componentsDir).includes(e)};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./projectUtils/getEntries.js"),t=require("./projectUtils/getEntriesWithAutoRegister.js");var r,i;exports.__require=function(){if(i)return r;i=1;const n=e.__require(),s=t.__require();return r=function({configEntry:e,disableAutoRegister:t,componentsDir:r,entryType:i="widget",cmpType:o}){if(e&&Object.keys(e).length>0)return{entries:e,cmpTypes:[]};let u,c;u=t?n(r,o):s(r,o),c="linkDebug"===i?u.linkDebugEntries||{}:u.widgetEntries||{};const p=u.cmpTypes||[];if(!c||0===Object.keys(c).length){throw new Error(`未识别到自定义组件,请检查 ${r||"./src/components"} 目录下是否存在自定义组件。`)}return{entries:c||e||{},cmpTypes:p,defaultExports:u.defaultExports||{}}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./projectUtils/getEntries.js"),t=require("./projectUtils/getEntriesWithAutoRegister.js");var r,i;exports.__require=function(){if(i)return r;i=1;const n=e.__require(),s=t.__require();return r=function({configEntry:e,disableAutoRegister:t,componentsDir:r,entryType:i="widget",cmpType:o}){if(e&&Object.keys(e).length>0)return{entries:e,cmpTypes:[]};let u,c;u=t?n(r,o):s(r,o,i),c="linkDebug"===i?u.linkDebugEntries||{}:u.widgetEntries||{};const p=u.cmpTypes||[];if(!c||0===Object.keys(c).length){throw new Error(`未识别到自定义组件,请检查 ${r||"./src/components"} 目录下是否存在自定义组件。`)}return{entries:c||e||{},cmpTypes:p,defaultExports:u.defaultExports||{}}}};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("node:path"),t=require("lodash"),s=require("../pathUtils.js"),i=require("../cmpUtils/getCmpRegisterCode.js"),o=require("../cmpUtils/getCmpModelRegisterCode.js");var n,c;exports.__require=function(){if(c)return n;c=1;const d=e,u=r,l=t,{resolveToCurrentRoot:a}=s.__require(),p=i.__require(),m=o.__require();return n=(e="./src/components",r)=>{const t={},s={index:[]},i=[],o={},n=a(e);d.existsSync(n)||(console.error(`未找到组件目录,请检查 ${e} 目录是否存在`),process.exit(1));const c=a("./.neo-cli");d.existsSync(c)||d.mkdirSync(c);try{let a=[];a=r?[r]:d.readdirSync(n),a.forEach(r=>{const a=u.join(n,r);if(d.statSync(a).isDirectory()&&!r.startsWith(".")&&"node_modules"!==r){const x=r,y=l.camelCase(x);i.push(x);const h=`${c}/${x}`;d.existsSync(h)||d.mkdirSync(h),d.readdirSync(a).filter(e=>e.match(/(index|model)\.(tsx?|jsx?|vue)$/)).map(r=>u.join(e,x,r)).forEach(e=>{if(e.match(/index\.(tsx?|jsx?|vue)$/)){o[y]=u.resolve(e);const r=`${h}/register.js`,i=p(n,x,r);d.writeFileSync(r,i),t[y]=r,s.index.push(r)}else if(e.match(/model\.[tj]sx?$/)){const e=`${h}/model.js`,r=m(n,x,e);d.writeFileSync(e,r),t[`${y}Model`]=e,s.index.push(e)}})}})}catch(e){console.error("获取自定义组件入口文件失败(getEntriesWithAutoRegister):",e),process.exit(1)}return{widgetEntries:t,linkDebugEntries:s,cmpTypes:i,defaultExports:o}}};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:fs"),r=require("node:path"),t=require("lodash"),s=require("../pathUtils.js"),i=require("../cmpUtils/getCmpRegisterCode.js"),o=require("../cmpUtils/getCmpModelRegisterCode.js");var n,c;exports.__require=function(){if(c)return n;c=1;const d=e,u=r,l=t,{resolveToCurrentRoot:a}=s.__require(),p=i.__require(),m=o.__require();return n=(e="./src/components",r,t="widget")=>{const s={},i={index:[]},o=[],n={},c=a(e);d.existsSync(c)||(console.error(`未找到组件目录,请检查 ${e} 目录是否存在`),process.exit(1));const x=a("./.neo-cli");d.existsSync(x)||d.mkdirSync(x);try{let a=[];a=r?[r]:d.readdirSync(c),a.forEach(r=>{const a=u.join(c,r);if(d.statSync(a).isDirectory()&&!r.startsWith(".")&&"node_modules"!==r){const y=r,h=l.camelCase(y);o.push(y);const g=`${x}/${y}`;d.existsSync(g)||d.mkdirSync(g),d.readdirSync(a).filter(e=>e.match(/(index|model)\.(tsx?|jsx?|vue)$/)).map(r=>u.join(e,y,r)).forEach(e=>{if(e.match(/index\.(tsx?|jsx?|vue)$/)){n[h]=u.resolve(e);const r=`${g}/register.js`,o=p(c,y,r,t);d.writeFileSync(r,o),s[h]=r,i.index.push(r)}else if(e.match(/model\.[tj]sx?$/)){const e=`${g}/model.js`,r=m(c,y,e,t);d.writeFileSync(e,r),s[`${h}Model`]=e,i.index.push(e)}})}})}catch(e){console.error("获取自定义组件入口文件失败(getEntriesWithAutoRegister):",e),process.exit(1)}return{widgetEntries:s,linkDebugEntries:i,cmpTypes:o,defaultExports:n}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-cmp-cli",
3
- "version": "1.10.2",
3
+ "version": "1.10.3",
4
4
  "description": "Neo 自定义组件开发工具,支持react 和 vue2.0技术栈。",
5
5
  "keywords": [
6
6
  "neo-cli",
@@ -103,6 +103,13 @@ module.exports = {
103
103
  }
104
104
  */
105
105
  },
106
+ // 选择「自定义环境」时需要添加 NeoCRM 平台配置,可自定义对接的任何环境
107
+ neoConfig: {
108
+ // authType: 'oauth2', // 默认授权模式:OAuth2 授权码模式
109
+ neoBaseURL: 'https://crm-test.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
110
+ loginURL: 'https://login-test.xiaoshouyi.com/auc/oauth2/auth', // 登录授权 URL(默认:https://login.xiaoshouyi.com/auc/oauth2/auth)
111
+ tokenURL: 'https://login-test.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址(默认:https://login.xiaoshouyi.com/auc/oauth2/token)
112
+ },
106
113
  pushCmp: {
107
114
  // 用于构建并发布至 NeoCRM 的相关配置
108
115
  /*
@@ -38,7 +38,7 @@
38
38
  "url": "https://github.com/wibetter/antd-custom-cmp-template/issues"
39
39
  },
40
40
  "dependencies": {
41
- "neo-register": "^1.1.2",
41
+ "neo-register": "^1.1.3",
42
42
  "antd": "4.9.4",
43
43
  "react": "^16.9.0",
44
44
  "react-dom": "^16.9.0"
@@ -38,7 +38,7 @@
38
38
  "url": "https://github.com/wibetter/echarts-custom-cmp-template/issues"
39
39
  },
40
40
  "dependencies": {
41
- "neo-register": "^1.1.2",
41
+ "neo-register": "^1.1.3",
42
42
  "react": "^16.9.0",
43
43
  "react-dom": "^16.9.0",
44
44
  "echarts": "^5.5.1"
@@ -37,7 +37,7 @@
37
37
  "url": "https://github.com/wibetter/empty-custom-cmp-template/issues"
38
38
  },
39
39
  "dependencies": {
40
- "neo-register": "^1.1.2",
40
+ "neo-register": "^1.1.3",
41
41
  "react": "^16.9.0",
42
42
  "react-dom": "^16.9.0",
43
43
  "antd": "4.9.4",
@@ -41,7 +41,7 @@
41
41
  "url": "https://github.com/wibetter/neo-custom-cmp-template/issues"
42
42
  },
43
43
  "dependencies": {
44
- "neo-register": "^1.1.2",
44
+ "neo-register": "^1.1.3",
45
45
  "react": "^16.9.0",
46
46
  "react-dom": "^16.9.0",
47
47
  "axios": "^0.27.2",
@@ -31,6 +31,9 @@ export class EntityFormModel {
31
31
  */
32
32
  targetPage: string[] = ['all'];
33
33
 
34
+ // 适配终端类型
35
+ targetDevice: string = 'all';
36
+
34
37
  enableDuplicate: boolean = true;
35
38
 
36
39
  /** 组件图标,用于设置在编辑器左侧组件面板中展示的图标 */
@@ -38,7 +38,7 @@
38
38
  "url": "https://github.com/wibetter/react-custom-cmp-template/issues"
39
39
  },
40
40
  "dependencies": {
41
- "neo-register": "^1.1.2",
41
+ "neo-register": "^1.1.3",
42
42
  "react": "^16.9.0",
43
43
  "react-dom": "^16.9.0"
44
44
  },
@@ -38,7 +38,7 @@
38
38
  "url": "https://github.com/wibetter/react-ts-custom-cmp-template/issues"
39
39
  },
40
40
  "dependencies": {
41
- "neo-register": "^1.1.2",
41
+ "neo-register": "^1.1.3",
42
42
  "react": "^16.9.0",
43
43
  "react-dom": "^16.9.0"
44
44
  },
@@ -38,7 +38,7 @@
38
38
  "url": "https://github.com/wibetter/vue2-custom-cmp-template/issues"
39
39
  },
40
40
  "dependencies": {
41
- "neo-register": "^1.1.2",
41
+ "neo-register": "^1.1.3",
42
42
  "vue": "^2.6.14",
43
43
  "element-ui": "^2.15.12"
44
44
  },
package/test/demo.js CHANGED
@@ -1,8 +1,20 @@
1
- const {neoInit, neoConfigInit, inspect, debug, build2lib, build2esm, neoInitByCopy, previewCmp, createCmpByTemplate } = require('../src/main');
2
- createCmpByTemplate('react_ts');
1
+ const {createCmpByTemplate, neoInitByCopy, previewCmp, linkDebug, pushCmp, deleteCmp } = require('../src/main');
2
+ // createCmpByTemplate('react_ts');
3
3
  // neoInitByCopy('react-ts', 'test123');
4
4
 
5
5
  // previewCmp('info-card');
6
6
 
7
+ // 本地调试
8
+ // linkDebug();
9
+
10
+ // 发布到 Neo 平台
11
+ pushCmp('entityForm__c')
12
+
13
+ // 删除自定义组件
14
+ // deleteCmp('entityForm__c')
15
+
16
+ // 拉取自定义组件
17
+ // pullCmp('entityForm__c')
18
+
7
19
  // const entries = getEntriesWithAutoRegister('linkDebug');
8
20
  // console.log(entries);
@@ -0,0 +1,117 @@
1
+ 'use strict';
2
+ const path = require('path');
3
+
4
+ // 统一路径解析
5
+ function resolve(dir) {
6
+ return path.resolve(__dirname, dir);
7
+ }
8
+
9
+ // 包括生产和开发的环境配置信息
10
+ module.exports = {
11
+ settings: {
12
+ enableESLint: false, // 调试模式是否开启ESLint,默认开启ESLint检测代码格式
13
+ enableESLintFix: false, // 是否自动修正代码格式,默认不自动修正
14
+ enableStyleLint: false, // 是否开启StyleLint,默认开启ESLint检测代码格式
15
+ enableStyleLintFix: false, // 是否需要StyleLint自动修正代码格式
16
+ },
17
+ webpack: {
18
+ target: ['web', 'es5'], // 指定目标环境为 web 和 es5,确保兼容性
19
+ resolve: {
20
+ // webpack的resolve配置
21
+ extensions: ['.js', '.jsx', '.ts', '.tsx', '.umd.js', '.min.js', '.json'], // 用于配置webpack在尝试过程中用到的后缀列表
22
+ alias: {
23
+ '@': resolve('src'),
24
+ $assets: resolve('src/assets'),
25
+ $public: resolve('public'),
26
+ $utils: resolve('src/utils'),
27
+ },
28
+ },
29
+ // createDeclaration: true, // 打包时是否创建ts声明文件
30
+ ignoreNodeModules: false, // 打包时是否忽略 node_modules
31
+ // allowList: [], // ignoreNodeModules为true时生效
32
+ projectDir: ['../template/neo-custom-cmp-template/src'],
33
+ // template: resolve('./public/template.html'), // 自定义html模板
34
+ // plugins: [],
35
+ // babelPlugins: [],
36
+ },
37
+ // 用于添加 Neo 共享依赖模块的配置信息
38
+ /*
39
+ neoCommonModule: {
40
+ // exports: ['xxModule'], // 数组写法,用于导出当前自定义组件中的第三方依赖模块
41
+ exports: { // 对象写法,可用于导出自定义组件中的某个内容模块(需要使用绝对路径导出)
42
+ 'xxModule': path.resolve('./src/components/xxModule'), // 导出 xx组件 或 xx模块
43
+ },
44
+ // remoteDeps: ['xxCmpType'], // 远程依赖组件,表示当前自定义组件会用到的依赖组件,需要和 externals 配合使用
45
+ // externals: ['xxModule'], // 自定义组件中需要剔除的模块,仅支持数组写法
46
+ },
47
+ */
48
+ componentsDir: resolve('../template/neo-custom-cmp-template/src/components'), // 自定义组件根目录
49
+ preview: {
50
+ // 用于开启本地预览模式的相关配置信息
51
+ /*
52
+ 【特别说明】以下配置项都自带默认值,非必填。如需自定义请自行配置。
53
+ entry: { // 根据 src/components 目录下的文件自动生成 entry 相关配置
54
+ // 本地预览自定义组件内容
55
+ index: './src/preview.jsx',
56
+ },
57
+ NODE_ENV: 'development',
58
+ port: 80, // 设置基础端口,如果被占用则自动寻找可用端口
59
+ assetsPublicPath: '/', // 设置静态资源的引用路径(根域名+路径)
60
+ assetsSubDirectory: '',
61
+ hostname: 'localhost',
62
+ proxyTable: {
63
+ '/apiTest': {
64
+ target: 'http://api-test.com.cn', // 不支持跨域的接口根地址
65
+ ws: true,
66
+ changeOrigin: true,
67
+ },
68
+ },
69
+ */
70
+ },
71
+ linkDebug: {
72
+ // 用于开启本地调试模式的相关配置信息
73
+ /*
74
+ 【特别说明】以下配置项都自带默认值,非必填。如需自定义请自行配置。
75
+ entry: { // 根据 src/components 目录下的文件自动生成 entry 相关配置
76
+ // 外链调试(在线上页面设计器端预览自定义组件)
77
+ index: [
78
+ './src/components/xxCmp/register.ts',
79
+ './src/components/xxCmp/model.ts',
80
+ ],
81
+ },
82
+ NODE_ENV: 'development',
83
+ port: 80, // 设置基础端口,如果被占用则自动寻找可用端口
84
+ closeHotReload: true, // 是否关闭热更新
85
+ assetsPublicPath: '/', // 设置静态资源的引用路径(根域名+路径)
86
+ assetsSubDirectory: '',
87
+ hostname: 'localhost',
88
+ proxyTable: {
89
+ '/apiTest': {
90
+ target: 'http://api-test.com.cn', // 不支持跨域的接口根地址
91
+ ws: true,
92
+ changeOrigin: true,
93
+ },
94
+ }
95
+ */
96
+ },
97
+ // 选择「自定义环境」时需要添加 NeoCRM 平台配置,可自定义对接的任何环境
98
+ neoConfig: {
99
+ // authType: 'oauth2', // 默认授权模式:OAuth2 授权码模式
100
+ neoBaseURL: 'https://crm-test.xiaoshouyi.com', // 平台根地址(默认:https://crm.xiaoshouyi.com)
101
+ loginURL: 'https://login-test.xiaoshouyi.com/auc/oauth2/auth', // 登录授权 URL(默认:https://login.xiaoshouyi.com/auc/oauth2/auth)
102
+ tokenURL: 'https://login-test.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址(默认:https://login.xiaoshouyi.com/auc/oauth2/token)
103
+ },
104
+ pushCmp: {
105
+ // 用于构建并发布至 NeoCRM 的相关配置
106
+ /*
107
+ 【特别说明】以下配置项都自带默认值,非必填。如需自定义请自行配置。
108
+ NODE_ENV: 'production',
109
+ entry: { // 根据 src/components 目录下的文件自动生成 entry 相关配置
110
+ InfoCardModel: './src/components/xxCmp/model.ts',
111
+ infoCard: './src/components/xxCmp/register.ts'
112
+ },
113
+ cssExtract: false, // 不额外提取css文件
114
+ assetsRoot: resolve('dist') // 上传指定目录下的脚本文件
115
+ */
116
+ },
117
+ };
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "neo-custom-cmp-template",
3
+ "version": "1.1.10",
4
+ "description": "neo自定义组件模板(react&ts技术栈)",
5
+ "framework": "react-ts",
6
+ "keywords": [
7
+ "自定义组件模板",
8
+ "react&ts技术栈",
9
+ "neo自定义组件"
10
+ ],
11
+ "author": "wibetter",
12
+ "license": "MIT",
13
+ "scripts": {
14
+ "preview": "neo preview",
15
+ "linkDebug": "neo linkDebug",
16
+ "neoLogin": "neo login",
17
+ "pushCmp": "neo push cmp",
18
+ "pullCmp": "neo pull cmp",
19
+ "deleteCmp": "neo delete cmp",
20
+ "format": "prettier --write \"src/**/**/*.{js,jsx,ts,tsx,vue,scss,json}\""
21
+ },
22
+ "dependencies": {
23
+ "neo-register": "^1.1.3",
24
+ "react": "^16.9.0",
25
+ "react-dom": "^16.9.0",
26
+ "axios": "^0.27.2",
27
+ "antd": "^4.9.4",
28
+ "lodash": "^4.17.21",
29
+ "neo-open-api": "^1.1.9"
30
+ },
31
+ "devDependencies": {
32
+ "@commitlint/cli": "^8.3.5",
33
+ "@commitlint/config-conventional": "^9.1.1",
34
+ "@types/react": "^16.9.11",
35
+ "@types/react-dom": "^16.9.15",
36
+ "@types/axios": "^0.14.0",
37
+ "neo-cmp-cli": "^1.9.28",
38
+ "husky": "^4.2.5",
39
+ "lint-staged": "^10.2.9",
40
+ "prettier": "^2.0.5"
41
+ },
42
+ "engines": {
43
+ "node": ">= 16.0.0",
44
+ "npm": ">= 8.0.0"
45
+ }
46
+ }