neo-cmp-cli 1.10.7 → 1.10.8

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.
Files changed (41) hide show
  1. package/dist/config/default.config.js +1 -1
  2. package/dist/main2.js +1 -1
  3. package/dist/neo/neoRequire.js +1 -1
  4. package/dist/package.json.js +1 -1
  5. package/dist/plugins/babel-plugin-add-data-scope.js +1 -0
  6. package/package.json +1 -1
  7. package/template/antd-custom-cmp-template/package.json +1 -1
  8. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/index.tsx +1 -1
  9. package/template/antd-custom-cmp-template/src/components/dataDashboard__c/style.scss +5 -5
  10. package/template/antd-custom-cmp-template/src/components/infoCard__c/index.tsx +1 -1
  11. package/template/antd-custom-cmp-template/src/components/infoCard__c/style.scss +1 -1
  12. package/template/antd-custom-cmp-template/tsconfig.json +1 -1
  13. package/template/echarts-custom-cmp-template/package.json +1 -1
  14. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/index.tsx +1 -1
  15. package/template/echarts-custom-cmp-template/src/components/chartWidget__c/style.scss +3 -3
  16. package/template/echarts-custom-cmp-template/src/components/mapWidget__c/index.tsx +1 -1
  17. package/template/echarts-custom-cmp-template/src/components/mapWidget__c/style.scss +2 -2
  18. package/template/echarts-custom-cmp-template/tsconfig.json +1 -1
  19. package/template/empty-custom-cmp-template/tsconfig.json +9 -1
  20. package/template/neo-custom-cmp-template/package.json +1 -1
  21. package/template/neo-custom-cmp-template/src/components/entityCardList__c/index.tsx +1 -1
  22. package/template/neo-custom-cmp-template/src/components/entityCardList__c/style.scss +1 -1
  23. package/template/neo-custom-cmp-template/src/components/entityDetail__c/README.md +1 -1
  24. package/template/neo-custom-cmp-template/src/components/entityDetail__c/index.tsx +1 -1
  25. package/template/neo-custom-cmp-template/src/components/entityDetail__c/style.scss +2 -2
  26. package/template/neo-custom-cmp-template/src/components/entityForm__c/index.tsx +1 -1
  27. package/template/neo-custom-cmp-template/src/components/entityForm__c/style.scss +1 -1
  28. package/template/neo-custom-cmp-template/src/components/entityTable__c/index.tsx +1 -1
  29. package/template/neo-custom-cmp-template/src/components/entityTable__c/style.scss +1 -1
  30. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/index.tsx +1 -1
  31. package/template/neo-custom-cmp-template/src/components/simpleCmp__c/style.scss +1 -1
  32. package/template/neo-custom-cmp-template/tsconfig.json +1 -1
  33. package/template/react-custom-cmp-template/package.json +1 -1
  34. package/template/react-custom-cmp-template/src/components/infoCard__c/index.jsx +1 -1
  35. package/template/react-custom-cmp-template/src/components/infoCard__c/style.scss +1 -1
  36. package/template/react-ts-custom-cmp-template/package.json +1 -1
  37. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/index.tsx +1 -1
  38. package/template/react-ts-custom-cmp-template/src/components/listWidget__c/style.scss +3 -3
  39. package/template/react-ts-custom-cmp-template/tsconfig.json +2 -1
  40. package/template/vue2-custom-cmp-template/package.json +1 -1
  41. package/template/vue2-custom-cmp-template/src/components/vueInfoCard__c/index.vue +3 -3
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun"),s=require("node:path");var t,o;exports.__require=function(){if(o)return t;o=1;const{resolve:a}=e,r=s,i={settings:{enableESLint:!1,enableESLintFix:!1,enableStyleLint:!1,enableStyleLintFix:!1},webpack:{resolve:{extensions:[".js",".jsx",".ts",".tsx",".vue",".min.js",".json"],alias:{"@":a("src")}},createDeclaration:!1,ignoreNodeModules:!1,allowList:[],externals:{},projectDir:["src"],template:(n="../../template/initData/defaultTemplate.html",r.resolve(__dirname,n)),sassResources:[],babelPlugins:[["import",{libraryName:"antd",style:"css"}]]},envParams:{common:{"#version#":"20221229.1"},local:{"#dataApiBase#":"http://localhost:1024","#assetsPublicPath#":"http://localhost:1024","#routeBasePath#":"/"},online:{"#dataApiBase#":"/","#assetsPublicPath#":"","#routeBasePath#":"/"}},dev:{NODE_ENV:"development",port:80,autoOpenBrowser:!0,assetsPublicPath:"/",assetsSubDirectory:"",hostname:"localhost",proxyTable:{},cssSourceMap:!0},build:{NODE_ENV:"production",assetsRoot:a("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},build2lib:{NODE_ENV:"production",libraryName:"",assetsRoot:a("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},linkDebug:{NODE_ENV:"development",closeHtmlWebpackPlugin:!0,autoOpenBrowser:!1,cssExtract:!1,consoleInfo:"当前自定义组件可用外链地址"},publish2oss:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,ossType:"ali",ossConfig:{endpoint:"https://oss-cn-beijing.aliyuncs.com",AccessKeyId:"xx",AccessKeySecret:"xx",bucket:"neo-widgets"},assetsRoot:a("dist")},pushCmp:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,assetsRoot:a("dist")}};var n;return t=i};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun"),s=require("node:path"),t=require("../plugins/babel-plugin-add-data-scope.js");var o,a;exports.__require=function(){if(a)return o;a=1;const{resolve:r}=e,i=s,n=t.__require(),l=c("../loaders/component-scope-style-loader.js");function c(e){return i.resolve(__dirname,e)}const u={settings:{enableESLint:!1,enableESLintFix:!1,enableStyleLint:!1,enableStyleLintFix:!1},webpack:{resolve:{extensions:[".js",".jsx",".ts",".tsx",".vue",".min.js",".json"],alias:{"@":r("src")}},createDeclaration:!1,ignoreNodeModules:!1,allowList:[],externals:{},projectDir:["src"],template:c("../../template/initData/defaultTemplate.html"),sassResources:[],babelPlugins:[["import",{libraryName:"antd",style:"css"}],[n,{scopeKey:"data-scope"}]],moduleRules:[{enforce:"pre",test:/(index|style)\.(scss|less)$/i,use:[{loader:l,options:{scopeKey:"data-scope"}}]}]},envParams:{common:{"#version#":"20221229.1"},local:{"#dataApiBase#":"http://localhost:1024","#assetsPublicPath#":"http://localhost:1024","#routeBasePath#":"/"},online:{"#dataApiBase#":"/","#assetsPublicPath#":"","#routeBasePath#":"/"}},dev:{NODE_ENV:"development",port:80,autoOpenBrowser:!0,assetsPublicPath:"/",assetsSubDirectory:"",hostname:"localhost",proxyTable:{},cssSourceMap:!0},build:{NODE_ENV:"production",assetsRoot:r("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},build2lib:{NODE_ENV:"production",libraryName:"",assetsRoot:r("dist"),assetsPublicPath:"/",assetsSubDirectory:"",productionSourceMap:!1,productionGzip:!1,productionGzipExtensions:["js","css","json"],bundleAnalyzerReport:!1},linkDebug:{NODE_ENV:"development",closeHtmlWebpackPlugin:!0,autoOpenBrowser:!1,cssExtract:!1,consoleInfo:"当前自定义组件可用外链地址"},publish2oss:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,ossType:"ali",ossConfig:{endpoint:"https://oss-cn-beijing.aliyuncs.com",AccessKeyId:"xx",AccessKeySecret:"xx",bucket:"neo-widgets"},assetsRoot:r("dist")},pushCmp:{output:{filename:"[name].js",library:{type:"var",export:"default"},globalObject:"this"},cssExtract:!1,assetsRoot:r("dist")}};return o=u};
package/dist/main2.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),o=require("./utils/neoParams.js"),u=require("./config/index.js"),l=require("./oss/publish2oss.js"),p=require("./neo/pushCmp.js"),n=require("./neo/pullCmp.js"),c=require("./neo/deleteCmp.js"),d=require("./utils/cmpUtils/previewCmp.js"),b=require("./utils/generateEntries.js"),m=require("./utils/cmpUtils/createCmpByTemplate.js"),q=require("./utils/projectUtils/createCmpProjectByTemplate.js"),a=require("./utils/projectUtils/openProject.js"),_=require("./utils/configureNeoBuild.js"),y=require("./utils/common.js"),g=require("./utils/projectNameValidator.js"),j=require("./utils/cmpUtils/getCmpTypeByDir.js"),v=require("./neo/neoService.js"),T=require("./neo/neoLogin.js"),f=require("./utils/projectUtils/hasNeoProject.js");var C,x;exports.__require=function(){if(x)return C;x=1;const h=e,E=r.__require(),N=i.__require(),w=s.__require(),B=t.__require(),{consoleTag:D}=o.__require(),P=u.__require(),k=l.__require(),I=p.__require(),L=n.__require(),M=c.__require(),U=d.__require(),O=b.__require(),S=m.__require(),R=q.__require(),A=a.__require(),{configureNeoBuild:V}=_.__require(),{errorLog:z,successLog:F}=y.__require(),{validateProjectName:G}=g.__require(),H=j.__require(),J=v.__require(),K=T.__require(),Q=f.__require();function W(e,r){const{entryType:i,cmpType:s}=r;let t=[],o={};try{const{entries:r,cmpTypes:u,defaultExports:l}=O({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:P.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=u,console.info("已自动生成 entry 入口配置:",r)),o=l}catch(e){z(e.message||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:o}}function X(e){return Object.assign(P.build2lib,e)}return C={neoInit:E,neoInitByCopy:N,inspect:w,neoConfigInit:B,projectConfig:P,consoleTag:D,errorLog:z,successLog:F,validateProjectName:G,getCmpTypeByDir:H,NeoService:J,NeoLoginService:K,hasNeoProject:Q,createCmpProjectByTemplate:R,createCmpByTemplate:S,dev:()=>{P.dev||(z("未找到 dev 相关配置。"),process.exit(1)),h.dev(P,D)},previewCmp:e=>{e||(z("请输入要预览的组件名称。"),process.exit(1)),P.preview||(z("未找到 preview 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.preview),delete P.preview,U(P,e)},linkDebug:()=>{P.linkDebug||(z("未找到 debug 相关配置。"),process.exit(1)),P.dev=Object.assign(P.dev,P.linkDebug),delete P.linkDebug,delete P.dev.ignoreNodeModules,P.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=W(P.dev,{entryType:"linkDebug"});V(P.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),h.dev(P,D)},build:()=>h.build("build",P,D),build2lib:()=>{W(P.build2lib,{entryType:"widget"}),h.build("lib",P,D)},publish2oss:e=>{const r=P.publish2oss;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),h.build("lib",P,D,()=>{k(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=P;P.build2lib=X(r);const{cmpTypes:i,defaultExports:s}=W(P.build2lib,{entryType:"widget",cmpType:e});V(P.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),h.build("lib",P,D,()=>{I(r,e)})},pullCmp:(e,r)=>{L(e,r)},deleteCmp:(e,r)=>{M(e,r)},build2esm:()=>h.build2esm(P,D),openEditor:A},C};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("akfun");require("lodash");const r=require("./module/neoInit.js"),i=require("./module/neoInitByCopy.js"),s=require("./module/inspect.js"),t=require("./utils/neoConfigInit.js"),u=require("./utils/neoParams.js"),o=require("./config/index.js"),l=require("./oss/publish2oss.js"),p=require("./neo/pushCmp.js"),n=require("./neo/pullCmp.js"),c=require("./neo/deleteCmp.js"),d=require("./utils/cmpUtils/previewCmp.js"),b=require("./utils/generateEntries.js"),a=require("./utils/cmpUtils/createCmpByTemplate.js"),m=require("./utils/projectUtils/createCmpProjectByTemplate.js"),q=require("./utils/projectUtils/openProject.js"),_=require("./utils/configureNeoBuild.js"),y=require("./utils/common.js"),g=require("./utils/projectNameValidator.js"),j=require("./utils/cmpUtils/getCmpTypeByDir.js"),v=require("./neo/neoService.js"),T=require("./neo/neoLogin.js"),f=require("./utils/projectUtils/hasNeoProject.js"),C=require("./plugins/babel-plugin-add-data-scope.js");var x,h;exports.__require=function(){if(h)return x;h=1;const E=e,N=r.__require(),w=i.__require(),B=s.__require(),D=t.__require(),{consoleTag:P}=u.__require(),k=o.__require(),I=l.__require(),L=p.__require(),M=n.__require(),S=c.__require(),U=d.__require(),O=b.__require(),A=a.__require(),R=m.__require(),V=q.__require(),{configureNeoBuild:z}=_.__require(),{errorLog:F,successLog:G}=y.__require(),{validateProjectName:H}=g.__require(),J=j.__require(),K=v.__require(),Q=T.__require(),W=f.__require(),X=C.__require();function Y(e,r){const{entryType:i,cmpType:s}=r;let t=[],u={};try{const{entries:r,cmpTypes:o,defaultExports:l}=O({configEntry:e.entry,disableAutoRegister:e.disableAutoRegister,componentsDir:k.componentsDir,entryType:i,cmpType:s});r&&Object.keys(r).length>0&&(e.entry=r,t=o,console.info("已自动生成 entry 入口配置:",r)),u=l}catch(e){F(e.message||e.msg),process.exit(1)}return{cmpTypes:t,defaultExports:u}}function Z(e){return Object.assign(k.build2lib,e)}return x={babelPluginAddDataScope:X,neoInit:N,neoInitByCopy:w,inspect:B,neoConfigInit:D,projectConfig:k,consoleTag:P,errorLog:F,successLog:G,validateProjectName:H,getCmpTypeByDir:J,NeoService:K,NeoLoginService:Q,hasNeoProject:W,createCmpProjectByTemplate:R,createCmpByTemplate:A,dev:()=>{k.dev||(F("未找到 dev 相关配置。"),process.exit(1)),E.dev(k,P)},previewCmp:e=>{e||(F("请输入要预览的组件名称。"),process.exit(1)),k.preview||(F("未找到 preview 相关配置。"),process.exit(1)),k.dev=Object.assign(k.dev,k.preview),delete k.preview,U(k,e)},linkDebug:()=>{k.linkDebug||(F("未找到 debug 相关配置。"),process.exit(1)),k.dev=Object.assign(k.dev,k.linkDebug),delete k.linkDebug,delete k.dev.ignoreNodeModules,k.webpack.ignoreNodeModules=!1;const{cmpTypes:e,defaultExports:r}=Y(k.dev,{entryType:"linkDebug"});z(k.dev,{cmpTypes:e,defaultExports:r,verbose:!0,excludeModel:!1}),E.dev(k,P)},build:()=>E.build("build",k,P),build2lib:()=>{Y(k.build2lib,{entryType:"widget"}),E.build("lib",k,P)},publish2oss:e=>{const r=k.publish2oss;k.build2lib=Z(r);const{cmpTypes:i,defaultExports:s}=Y(k.build2lib,{entryType:"widget",cmpType:e});z(k.build2lib,{cmpTypes:i,defaultExports:s,verbose:!0,excludeModel:!0}),E.build("lib",k,P,()=>{I(r.ossType,r.ossConfig,r.assetsRoot)})},pushCmp:e=>{const{pushCmp:r}=k;k.build2lib=Z(r);const{cmpTypes:i,defaultExports:s}=Y(k.build2lib,{entryType:"widget",cmpType:e});z(k.build2lib,{cmpTypes:i,defaultExports:s,verbose:!1,excludeModel:!0}),E.build("lib",k,P,()=>{L(r,e)})},pullCmp:(e,r)=>{M(e,r)},deleteCmp:(e,r)=>{S(e,r)},build2esm:()=>E.build2esm(k,P),openEditor:V},x};
@@ -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];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
+ "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-component-h5":"^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.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var e="1.10.7";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.8";const o={version:e};exports.default=o,exports.version=e;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("node:path");var t,n;exports.__require=function(){if(n)return t;n=1;const r=e;return t=function(e,t){const{types:n}=e,i=(t||{}).scopeKey||"data-scope";function s(e){if(!e)return"";try{const t=r.dirname(e);return r.basename(t)||""}catch(e){return""}}const o=new Set(["jsx","jsxs","jsxDEV","_jsx","_jsxs","_jsxDEV"]);function a(e){if(!e||!e.isCallExpression())return!1;const t=e.get("callee");return function(e){return!!e&&(!!(e.isMemberExpression()&&n.isIdentifier(e.get("object").node,{name:"React"})&&n.isIdentifier(e.get("property").node,{name:"createElement"}))||e.isIdentifier({name:"createElement"}))}(t)||function(e){return e&&e.isIdentifier()&&o.has(e.node.name)}(t)}function c(e){const t=n.isValidIdentifier(i)?n.identifier(i):n.stringLiteral(i);return n.objectProperty(t,n.stringLiteral(e))}function u(e,t){if(e)if(e.isNullLiteral()||e.isIdentifier({name:"undefined"}))e.replaceWith(n.objectExpression([c(t)]));else if(e.isObjectExpression()){if(e.node.properties.some(e=>!(!n.isObjectProperty(e)||e.computed)&&(!(!n.isIdentifier(e.key)||e.key.name!==i)||n.isStringLiteral(e.key)&&e.key.value===i)))return;e.node.properties.unshift(c(t))}else{e.replaceWith(n.callExpression(n.memberExpression(n.identifier("Object"),n.identifier("assign")),[n.objectExpression([c(t)]),e.node]))}}function f(e,t){if(!a(e))return!1;const r=e.get("arguments"),i=function(e){return!!(e&&e.node&&(n.isIdentifier(e.node,{name:"Fragment"})||n.isMemberExpression(e.node)&&n.isIdentifier(e.node.object,{name:"React"})&&n.isIdentifier(e.node.property,{name:"Fragment"})))}(r[0]);if(i){const r=function(e,t){const r=e.get("arguments"),i=r[1];if(i&&i.isObjectExpression()){const e=i.get("properties");for(const r of e)if(r.isObjectProperty()&&!r.node.computed&&(n.isIdentifier(r.node.key)&&"children"===r.node.key.name||n.isStringLiteral(r.node.key)&&"children"===r.node.key.value)){const e=r.get("value");if(Array.isArray(e))continue;if(m(e,t))return!0}}for(let e=2;e<r.length;e++)if(m(r[e],t))return!0;return!1}(e,t);if(r)return!0}r[1]||(e.node.arguments[1]=n.objectExpression([]));return u(e.get("arguments")[1],t),!0}function d(e){return!(!e||!e.node)&&(!(!e.isJSXElement()&&!e.isJSXFragment())||(e.isArrayExpression()?e.get("elements").some(e=>d(e)):e.isConditionalExpression()?d(e.get("consequent"))||d(e.get("alternate")):e.isLogicalExpression()?d(e.get("left"))||d(e.get("right")):!!e.isCallExpression()&&(!!a(e)||e.get("arguments").some(e=>d(e)))))}function m(e,t){if(!e||!e.node)return!1;if(e.isJSXElement())return function(e,t=""){const r=e.openingElement.attributes;if(!r.some(e=>n.isJSXAttribute(e)&&e.name.name===i)){const e=n.jsxAttribute(n.jsxIdentifier(i),n.stringLiteral(t));r.unshift(e)}}(e.node,t),!0;if(e.isJSXFragment()){const n=e.get("children");for(const e of n)if(m(e,t))return!0;return!1}if(e.isArrayExpression()){const n=e.get("elements");for(const e of n)if(m(e,t))return!0;return!1}if(e.isConditionalExpression()){const n=m(e.get("consequent"),t),r=m(e.get("alternate"),t);return n||r}if(e.isLogicalExpression()){const n=m(e.get("left"),t),r=m(e.get("right"),t);return n||r}return!!e.isCallExpression()&&f(e,t)}function l(e,t){const n=e.get("argument");n.node&&m(n,t)}return{visitor:{Function(e){if(!function(e){const t=e.get("body");if(t.isBlockStatement()){let e=!1;return t.traverse({ReturnStatement(t){const n=t.get("argument");n.node&&d(n)&&(e=!0,t.stop())}}),e}return!!d(t)}(e))return;const t=s(e.hub?.file?.opts?.filename||""),n=e.get("body");n.isBlockStatement()?n.traverse({ReturnStatement(e){l(e,t)}}):m(n,t)},Class(e){const t=e.node.superClass;if(!t)return;if(!(n.isIdentifier(t)&&("Component"===t.name||"PureComponent"===t.name||"BaseCmp"===t.name)||n.isMemberExpression(t)&&n.isIdentifier(t.object)&&"React"===t.object.name))return;const r=s(e.hub?.file?.opts?.filename||"");e.traverse({ClassMethod(e){const t=e.node.key;if("method"===e.node.kind&&n.isIdentifier(t)&&"render"===t.name){const t=e.get("body");t.isBlockStatement()&&t.traverse({ReturnStatement(e){l(e,r)}})}}})},ClassMethod(e){const t=e.node.key;if("method"===e.node.kind&&n.isIdentifier(t)&&"render"===t.name){const t=s(e.hub?.file?.opts?.filename||""),n=e.get("body");n.isBlockStatement()&&n.traverse({ReturnStatement(e){l(e,t)}})}}}}}};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neo-cmp-cli",
3
- "version": "1.10.7",
3
+ "version": "1.10.8",
4
4
  "description": "Neo 自定义组件开发工具,支持react 和 vue2.0技术栈。",
5
5
  "keywords": [
6
6
  "neo-cli",
@@ -48,7 +48,7 @@
48
48
  "@commitlint/config-conventional": "^9.1.1",
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
- "neo-cmp-cli": "^1.10.7",
51
+ "neo-cmp-cli": "^1.10.8",
52
52
  "husky": "^4.2.5",
53
53
  "lint-staged": "^10.2.9",
54
54
  "prettier": "^2.0.5"
@@ -183,7 +183,7 @@ export default class DataDashboard extends React.PureComponent<DataDashboardProp
183
183
 
184
184
  return (
185
185
  <div
186
- className={`data-dashboard-container ${theme} ${
186
+ className={`dataDashboard__c ${theme} ${
187
187
  isAnimating ? 'animating' : ''
188
188
  }`}
189
189
  >
@@ -214,7 +214,7 @@
214
214
  }
215
215
 
216
216
  // 主容器 - 现代化设计
217
- .data-dashboard-container {
217
+ .dataDashboard__c {
218
218
  position: relative;
219
219
  min-height: 100vh;
220
220
  padding: var(--space-lg);
@@ -1307,7 +1307,7 @@
1307
1307
 
1308
1308
  // 响应式设计 - 现代化移动端适配
1309
1309
  @media (max-width: 1200px) {
1310
- .data-dashboard-container {
1310
+ .dataDashboard__c {
1311
1311
  padding: var(--space-md);
1312
1312
  }
1313
1313
 
@@ -1330,7 +1330,7 @@
1330
1330
  }
1331
1331
 
1332
1332
  @media (max-width: 768px) {
1333
- .data-dashboard-container {
1333
+ .dataDashboard__c {
1334
1334
  padding: var(--space-sm);
1335
1335
  }
1336
1336
 
@@ -1409,7 +1409,7 @@
1409
1409
  }
1410
1410
 
1411
1411
  @media (max-width: 480px) {
1412
- .data-dashboard-container {
1412
+ .dataDashboard__c {
1413
1413
  padding: var(--space-xs);
1414
1414
  }
1415
1415
 
@@ -1501,7 +1501,7 @@
1501
1501
  }
1502
1502
 
1503
1503
  // 额外的交互元素和微动画
1504
- .data-dashboard-container {
1504
+ .dataDashboard__c {
1505
1505
  // 添加全局悬停效果
1506
1506
  .metric-card,
1507
1507
  .products-card,
@@ -40,7 +40,7 @@ export default class InfoCard extends React.PureComponent<InfoCardProps> {
40
40
  const curBackgroundImage =
41
41
  backgroundImage || 'https://neo-widgets.bj.bcebos.com/NeoCRM.jpg';
42
42
  return (
43
- <div className={`info-card-container ${className}`}>
43
+ <div className={`infoCard__c ${className}`}>
44
44
  <div className="news-title">
45
45
  {title ||
46
46
  '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
@@ -2,7 +2,7 @@
2
2
  --padding-bottom: 12px;
3
3
  }
4
4
 
5
- .info-card-container {
5
+ .infoCard__c {
6
6
  position: relative;
7
7
  box-sizing: border-box;
8
8
 
@@ -8,7 +8,7 @@
8
8
  // "lib": [], /* Specify library files to be included in the compilation. */
9
9
  "allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
10
10
  // "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
11
- "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
11
+ "jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
12
12
  "declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
13
13
  // "declarationMap": true, /* 指定编译时是否生成.map文件 */
14
14
  // "sourceMap": true, /* 指定编译时是否生成.map文件 */
@@ -48,7 +48,7 @@
48
48
  "@commitlint/config-conventional": "^9.1.1",
49
49
  "@types/react": "^16.9.11",
50
50
  "@types/react-dom": "^16.9.15",
51
- "neo-cmp-cli": "^1.10.7",
51
+ "neo-cmp-cli": "^1.10.8",
52
52
  "husky": "^4.2.5",
53
53
  "lint-staged": "^10.2.9",
54
54
  "prettier": "^2.0.5",
@@ -699,7 +699,7 @@ export default class ChartWidget extends React.PureComponent<ChartWidgetProps> {
699
699
  const systemInfo = curAmisData.__NeoSystemInfo || {};
700
700
 
701
701
  return (
702
- <div className="chart-widget-container">
702
+ <div className="chartWidget__c">
703
703
  {/* 显示当前用户信息 */}
704
704
  {userInfo && userInfo.name && (
705
705
  <div className="user-info">
@@ -1,4 +1,4 @@
1
- .chart-widget-container {
1
+ .chartWidget__c {
2
2
  position: relative;
3
3
  width: 100%;
4
4
  height: 100%;
@@ -130,7 +130,7 @@
130
130
  }
131
131
 
132
132
  // 图表类型特定样式
133
- .chart-widget-container {
133
+ .chartWidget__c {
134
134
  &.line-chart {
135
135
  .chart-container {
136
136
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.1), rgba(118, 75, 162, 0.1));
@@ -181,7 +181,7 @@
181
181
  }
182
182
 
183
183
  // 全局图表样式覆盖
184
- .chart-widget-container {
184
+ .chartWidget__c {
185
185
  .chart-container {
186
186
  // 确保 ECharts 图表在容器内正确显示
187
187
  canvas {
@@ -350,7 +350,7 @@ export default class MapWidget extends React.PureComponent<
350
350
  console.log('this.props:', this.props);
351
351
 
352
352
  return (
353
- <div className={`map-widget-wrapper ${className}`}>
353
+ <div className={`mapWidget__c ${className}`}>
354
354
  {/*
355
355
  // 地图头部: 显示地图标题和当前位置地址
356
356
  <div className="map-widget-header">
@@ -1,5 +1,5 @@
1
1
  // 地图组件样式文件
2
- .map-widget-wrapper {
2
+ .mapWidget__c {
3
3
  width: 100%;
4
4
  background: #fff;
5
5
  border-radius: 8px;
@@ -153,7 +153,7 @@
153
153
 
154
154
  // 响应式适配
155
155
  @media (max-width: 768px) {
156
- .map-widget-wrapper {
156
+ .mapWidget__c {
157
157
  .map-widget-header {
158
158
  padding: 12px 16px;
159
159
 
@@ -8,7 +8,7 @@
8
8
  // "lib": [], /* Specify library files to be included in the compilation. */
9
9
  "allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
10
10
  // "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
11
- "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
11
+ "jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
12
12
  "declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
13
13
  // "declarationMap": true, /* 指定编译时是否生成.map文件 */
14
14
  // "sourceMap": true, /* 指定编译时是否生成.map文件 */
@@ -8,7 +8,15 @@
8
8
  // "lib": [], /* Specify library files to be included in the compilation. */
9
9
  "allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
10
10
  // "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
11
- "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
11
+ /**
12
+ * jsx 常见取值与含义:
13
+ * preserve:保留 JSX,不转成 JS 调用,交给后续工具(如 Babel、SWC)处理;输出仍含 JSX。
14
+ * react:老版转换,编译为 React.createElement,并插入 __source/__self 等帮助信息(仅在开发模式)。
15
+ * react-jsx:React 17+ 新转换(自动引入 jsx/jsxs from react/jsx-runtime),无需显式 import React from 'react';用于生产构建。
16
+ * react-jsxdev:同上,但带额外调试信息(开发模式)。
17
+ * react-native:保留 JSX 但针对 React Native 打包器的特殊行为(不加 React.createElement),通常配合 React Native 工具链。
18
+ */
19
+ "jsx": "preserve" /* 保留 JSX,不转成 JS 调用,交给后续工具(如 Babel、SWC)处理;输出仍含 JSX。 */,
12
20
  "declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
13
21
  // "declarationMap": true, /* 指定编译时是否生成.map文件 */
14
22
  // "sourceMap": true, /* 指定编译时是否生成.map文件 */
@@ -55,7 +55,7 @@
55
55
  "@types/react": "^16.9.11",
56
56
  "@types/react-dom": "^16.9.15",
57
57
  "@types/axios": "^0.14.0",
58
- "neo-cmp-cli": "^1.10.7",
58
+ "neo-cmp-cli": "^1.10.8",
59
59
  "husky": "^4.2.5",
60
60
  "lint-staged": "^10.2.9",
61
61
  "prettier": "^2.0.5"
@@ -164,7 +164,7 @@ export default class EntityCardList extends BaseCmp<
164
164
  console.log('this.props:', this.props);
165
165
 
166
166
  return (
167
- <div className={`entity-card-list-container ${className}`}>
167
+ <div className={`entityCardList__c ${className}`}>
168
168
  <div className="card-list-header">
169
169
  <div className="header-content">
170
170
  <h3 className="header-title">
@@ -1,4 +1,4 @@
1
- .entity-card-list-container {
1
+ .entityCardList__c {
2
2
  position: relative;
3
3
  box-sizing: border-box;
4
4
  height: 100%;
@@ -122,7 +122,7 @@ const descResult = await xObject.getDesc(xObjectDetailApi.xObjectApiKey);
122
122
  组件提供了丰富的 CSS 类名,可以通过自定义样式进行个性化定制:
123
123
 
124
124
  ```scss
125
- .entity-detail-container {
125
+ .entityDetail__c {
126
126
  // 容器样式
127
127
 
128
128
  .detail-header {
@@ -278,7 +278,7 @@ export default class EntityDetail extends React.PureComponent<
278
278
  console.log('this.props:', this.props);
279
279
 
280
280
  return (
281
- <div className={`entity-detail-container ${className}`}>
281
+ <div className={`entityDetail__c ${className}`}>
282
282
  {showTitle && (
283
283
  <div className="detail-header">
284
284
  <div className="header-content">
@@ -1,4 +1,4 @@
1
- .entity-detail-container {
1
+ .entityDetail__c {
2
2
  position: relative;
3
3
  box-sizing: border-box;
4
4
  height: 100%;
@@ -269,7 +269,7 @@
269
269
  }
270
270
 
271
271
  // 自定义滚动条样式
272
- .entity-detail-container .detail-content {
272
+ .entityDetail__c .detail-content {
273
273
  &::-webkit-scrollbar {
274
274
  width: 6px;
275
275
  height: 6px;
@@ -574,7 +574,7 @@ export default class EntityForm extends React.PureComponent<
574
574
  const displayTitle = formTitle || title || '新增数据';
575
575
 
576
576
  return (
577
- <div className="entity-form-container">
577
+ <div className="entityForm__c">
578
578
  <Card>
579
579
  <div className="form-header">
580
580
  <h3 className="form-title">
@@ -1,4 +1,4 @@
1
- .entity-form-container {
1
+ .entityForm__c {
2
2
  .form-header {
3
3
  margin-bottom: 24px;
4
4
  padding-bottom: 16px;
@@ -713,7 +713,7 @@ export default class EntityTable extends BaseCmp<
713
713
  console.log('this.props:', this.props, columns, this);
714
714
 
715
715
  return (
716
- <div className={`entity-table-container ${className}`}>
716
+ <div className={`entityTable__c ${className}`}>
717
717
  <Card>
718
718
  <div className="table-header">
719
719
  <div className="header-content">
@@ -1,4 +1,4 @@
1
- .entity-table-container {
1
+ .entityTable__c {
2
2
  .table-header {
3
3
  margin-bottom: 16px;
4
4
 
@@ -31,7 +31,7 @@ export default class CustomCmp extends BaseCmp<CustomCmpProps, CustomCmpStates>
31
31
  console.log('当前自定义组件:', this.props);
32
32
 
33
33
  return (
34
- <div className={`custom-cmp-container ${className}`}>
34
+ <div className={`simpleCmp__c ${className}`}>
35
35
  <div className="news-title">
36
36
  {languageCode === 'zh-CN' ? '你好,销售易!' : 'Hello NeoCRM!'}
37
37
  </div>
@@ -2,7 +2,7 @@
2
2
  --padding-bottom: 12px;
3
3
  }
4
4
 
5
- .custom-cmp-container {
5
+ .simpleCmp__c {
6
6
  position: relative;
7
7
  box-sizing: border-box;
8
8
 
@@ -4,7 +4,7 @@
4
4
  "target": "esnext",
5
5
  "module": "esnext",
6
6
  "allowJs": false,
7
- "jsx": "react",
7
+ "jsx": "react", // preserve
8
8
  "declaration": false,
9
9
  "noEmit": false,
10
10
  "importHelpers": true,
@@ -45,7 +45,7 @@
45
45
  "devDependencies": {
46
46
  "@commitlint/cli": "^8.3.5",
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
- "neo-cmp-cli": "^1.10.7",
48
+ "neo-cmp-cli": "^1.10.8",
49
49
  "husky": "^4.2.5",
50
50
  "lint-staged": "^10.2.9",
51
51
  "prettier": "^2.0.5"
@@ -19,7 +19,7 @@ export default class InfoCard extends React.PureComponent {
19
19
  const curBackgroundImage =
20
20
  backgroundImage || 'https://neo-widgets.bj.bcebos.com/NeoCRM.jpg';
21
21
  return (
22
- <div className={`info-card-container ${className}`}>
22
+ <div className={`infoCard__c ${className}`}>
23
23
  <div className="news-title">
24
24
  {title ||
25
25
  '营销服全场景智能CRM,帮助企业搭建数字化客户经营平台,实现业绩高质量增长。'}
@@ -1,4 +1,4 @@
1
- .info-card-container {
1
+ .infoCard__c {
2
2
  position: relative;
3
3
  box-sizing: border-box;
4
4
  // border-bottom: 1px solid #ececec;
@@ -47,7 +47,7 @@
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
48
  "@types/react": "^16.9.11",
49
49
  "@types/react-dom": "^16.9.15",
50
- "neo-cmp-cli": "^1.10.7",
50
+ "neo-cmp-cli": "^1.10.8",
51
51
  "husky": "^4.2.5",
52
52
  "lint-staged": "^10.2.9",
53
53
  "prettier": "^2.0.5"
@@ -192,7 +192,7 @@ export default class ListWidget extends React.PureComponent<ListWidgetProps> {
192
192
  const mockData = this.generateMockData(itemCount);
193
193
 
194
194
  return (
195
- <div className={`list-widget-container ${className}`}>
195
+ <div className={`listWidget__c ${className}`}>
196
196
  <div className="list-header">
197
197
  <h2 className="list-title">
198
198
  {title || '内容列表'}
@@ -5,7 +5,7 @@
5
5
  --list-hover-shadow: 0 4px 12px rgb(0 0 0 / 15%);
6
6
  }
7
7
 
8
- .list-widget-container {
8
+ .listWidget__c {
9
9
  position: relative;
10
10
  box-sizing: border-box;
11
11
  margin: 12px;
@@ -276,7 +276,7 @@
276
276
 
277
277
  // 响应式设计
278
278
  @media (max-width: 768px) {
279
- .list-widget-container {
279
+ .listWidget__c {
280
280
  margin: 8px;
281
281
  padding: 12px;
282
282
 
@@ -306,7 +306,7 @@
306
306
 
307
307
  // 暗色主题支持
308
308
  @media (prefers-color-scheme: dark) {
309
- .list-widget-container {
309
+ .listWidget__c {
310
310
  background-color: #1f1f1f;
311
311
  color: #fff;
312
312
 
@@ -8,7 +8,8 @@
8
8
  // "lib": [], /* Specify library files to be included in the compilation. */
9
9
  "allowJs": false /* 指定是否允许编译JS文件,默认false,即不编译JS文件. */,
10
10
  // "checkJs": true, /* 指定是否检查和报告JS文件中的错误,默认false */
11
- "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
11
+ // "jsx": "react" /* 指定jsx代码用于的开发环境:'preserve','react-native', or 'react'. */,
12
+ "jsx": "preserve" /* 保留 JSX 交由 Babel(含 data-scope 插件)处理,确保作用域属性可注入 */,
12
13
  "declaration": false /* 指定是否在编译的时候生成相的d.ts声明文件 */,
13
14
  // "declarationMap": true, /* 指定编译时是否生成.map文件 */
14
15
  // "sourceMap": true, /* 指定编译时是否生成.map文件 */
@@ -45,7 +45,7 @@
45
45
  "devDependencies": {
46
46
  "@commitlint/cli": "^8.3.5",
47
47
  "@commitlint/config-conventional": "^9.1.1",
48
- "neo-cmp-cli": "^1.10.7",
48
+ "neo-cmp-cli": "^1.10.8",
49
49
  "husky": "^4.2.5",
50
50
  "lint-staged": "^10.2.9",
51
51
  "prettier": "^2.0.5",
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="info-card-container">
2
+ <div class="vueInfoCard__c">
3
3
  <div class="news-title">
4
4
  {{ title }}
5
5
  </div>
@@ -60,8 +60,8 @@ export default {
60
60
  },
61
61
  };
62
62
  </script>
63
- <style lang="scss">
64
- .info-card-container {
63
+ <style lang="scss" scoped>
64
+ .vueInfoCard__c {
65
65
  position: relative;
66
66
  box-sizing: border-box;
67
67
  // border-bottom: 1px solid #ececec;