neo-cmp-cli 1.0.0

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 (76) hide show
  1. package/README.md +236 -0
  2. package/bin/neo.js +2 -0
  3. package/package.json +74 -0
  4. package/src/config/default.config.js +136 -0
  5. package/src/config/index.js +9 -0
  6. package/src/initData/defaultTemplate.html +13 -0
  7. package/src/initData/neo.config.js +99 -0
  8. package/src/module/index.js +244 -0
  9. package/src/module/inspect.js +40 -0
  10. package/src/module/main.js +109 -0
  11. package/src/module/neoInit.js +44 -0
  12. package/src/module/neoInitByCopy.js +37 -0
  13. package/src/oss/publish2oss.js +218 -0
  14. package/src/plugins/README.md +2 -0
  15. package/src/template/react-custom-widget-template/.editorconfig +10 -0
  16. package/src/template/react-custom-widget-template/.prettierrc.js +12 -0
  17. package/src/template/react-custom-widget-template/README.md +51 -0
  18. package/src/template/react-custom-widget-template/commitlint.config.js +59 -0
  19. package/src/template/react-custom-widget-template/neo.config.js +112 -0
  20. package/src/template/react-custom-widget-template/package.json +56 -0
  21. package/src/template/react-custom-widget-template/public/css/base.css +283 -0
  22. package/src/template/react-custom-widget-template/public/scripts/app/bluebird.js +6679 -0
  23. package/src/template/react-custom-widget-template/public/template.html +13 -0
  24. package/src/template/react-custom-widget-template/src/assets/css/common.scss +127 -0
  25. package/src/template/react-custom-widget-template/src/assets/css/mixin.scss +47 -0
  26. package/src/template/react-custom-widget-template/src/components/info-card/index.jsx +45 -0
  27. package/src/template/react-custom-widget-template/src/components/info-card/model.js +81 -0
  28. package/src/template/react-custom-widget-template/src/components/info-card/register.js +4 -0
  29. package/src/template/react-custom-widget-template/src/components/info-card/style.scss +67 -0
  30. package/src/template/react-custom-widget-template/src/preview.js +5 -0
  31. package/src/template/react-ts-custom-widget-template/.editorconfig +10 -0
  32. package/src/template/react-ts-custom-widget-template/.prettierrc.js +12 -0
  33. package/src/template/react-ts-custom-widget-template/README.md +53 -0
  34. package/src/template/react-ts-custom-widget-template/commitlint.config.js +59 -0
  35. package/src/template/react-ts-custom-widget-template/neo.config.js +106 -0
  36. package/src/template/react-ts-custom-widget-template/package.json +59 -0
  37. package/src/template/react-ts-custom-widget-template/public/css/base.css +283 -0
  38. package/src/template/react-ts-custom-widget-template/public/scripts/app/bluebird.js +6679 -0
  39. package/src/template/react-ts-custom-widget-template/public/template.html +13 -0
  40. package/src/template/react-ts-custom-widget-template/src/assets/css/common.scss +127 -0
  41. package/src/template/react-ts-custom-widget-template/src/assets/css/mixin.scss +47 -0
  42. package/src/template/react-ts-custom-widget-template/src/components/info-card/index.tsx +70 -0
  43. package/src/template/react-ts-custom-widget-template/src/components/info-card/plugin.ts +80 -0
  44. package/src/template/react-ts-custom-widget-template/src/components/info-card/register.ts +5 -0
  45. package/src/template/react-ts-custom-widget-template/src/components/info-card/style.scss +105 -0
  46. package/src/template/react-ts-custom-widget-template/src/components/list-widget/README.md +2 -0
  47. package/src/template/react-ts-custom-widget-template/src/components/list-widget/index.tsx +208 -0
  48. package/src/template/react-ts-custom-widget-template/src/components/list-widget/model.ts +92 -0
  49. package/src/template/react-ts-custom-widget-template/src/components/list-widget/register.ts +5 -0
  50. package/src/template/react-ts-custom-widget-template/src/components/list-widget/style.scss +350 -0
  51. package/src/template/react-ts-custom-widget-template/src/preview.tsx +37 -0
  52. package/src/template/react-ts-custom-widget-template/tsconfig.json +68 -0
  53. package/src/template/vue2-neo-custom-widget/.editorconfig +10 -0
  54. package/src/template/vue2-neo-custom-widget/.prettierrc.js +12 -0
  55. package/src/template/vue2-neo-custom-widget/README.md +52 -0
  56. package/src/template/vue2-neo-custom-widget/commitlint.config.js +59 -0
  57. package/src/template/vue2-neo-custom-widget/neo.config.js +122 -0
  58. package/src/template/vue2-neo-custom-widget/package.json +59 -0
  59. package/src/template/vue2-neo-custom-widget/public/css/base.css +283 -0
  60. package/src/template/vue2-neo-custom-widget/public/scripts/app/bluebird.js +6679 -0
  61. package/src/template/vue2-neo-custom-widget/public/template.html +13 -0
  62. package/src/template/vue2-neo-custom-widget/src/assets/css/common.scss +126 -0
  63. package/src/template/vue2-neo-custom-widget/src/assets/css/mixin.scss +47 -0
  64. package/src/template/vue2-neo-custom-widget/src/preview.js +9 -0
  65. package/src/template/vue2-neo-custom-widget/src/widgets/info-card/index.vue +131 -0
  66. package/src/template/vue2-neo-custom-widget/src/widgets/info-card/plugin.js +81 -0
  67. package/src/template/vue2-neo-custom-widget/src/widgets/info-card/register.js +8 -0
  68. package/src/utils/getConfigObj.js +18 -0
  69. package/src/utils/getEntries.js +54 -0
  70. package/src/utils/neoConfigInit.js +13 -0
  71. package/src/utils/neoParams.js +12 -0
  72. package/src/utils/pathUtils.js +23 -0
  73. package/src/utils/projectNameValidator.js +76 -0
  74. package/src/utils/replaceInFiles.js +47 -0
  75. package/src/utils/replaceInPackage.js +134 -0
  76. package/test/demo.js +3 -0
@@ -0,0 +1,134 @@
1
+ const fs = require('fs-extra');
2
+ const path = require('path');
3
+
4
+ /**
5
+ * package.json文件中替换指定字符串
6
+ * @param dir 项目目录
7
+ * @param oldStr 旧字符串
8
+ * @param newStr 新字符串
9
+ * @returns 替换结果对象: { success: boolean, message: string, filePath?: string, replaced?: boolean }
10
+ */
11
+ function replaceInPackage(dir, oldStr, newStr) {
12
+ try {
13
+ // 检查目录是否存在
14
+ if (!fs.existsSync(dir)) {
15
+ return {
16
+ success: false,
17
+ message: `目录不存在: ${dir}`
18
+ };
19
+ }
20
+
21
+ // 检查是否为目录
22
+ const stat = fs.statSync(dir);
23
+ if (!stat.isDirectory()) {
24
+ return {
25
+ success: false,
26
+ message: `指定路径不是目录: ${dir}`
27
+ };
28
+ }
29
+
30
+ // 构建package.json的完整路径
31
+ const packageJsonPath = path.join(dir, 'package.json');
32
+
33
+ // 检查package.json文件是否存在
34
+ if (!fs.existsSync(packageJsonPath)) {
35
+ return {
36
+ success: false,
37
+ message: `package.json文件不存在: ${packageJsonPath}`
38
+ };
39
+ }
40
+
41
+ // 读取package.json文件内容
42
+ let content = fs.readFileSync(packageJsonPath, 'utf8');
43
+
44
+ // 检查是否包含要替换的字符串
45
+ if (!content.includes(oldStr)) {
46
+ return {
47
+ success: true,
48
+ message: `package.json中未找到要替换的字符串: ${oldStr}`,
49
+ filePath: packageJsonPath,
50
+ replaced: false
51
+ };
52
+ }
53
+
54
+ // 执行全局替换
55
+ const newContent = content.replace(new RegExp(oldStr, 'g'), newStr);
56
+
57
+ // 检查是否有实际变化
58
+ if (content === newContent) {
59
+ return {
60
+ success: true,
61
+ message: '替换后内容无变化',
62
+ filePath: packageJsonPath,
63
+ replaced: false
64
+ };
65
+ }
66
+
67
+ // 写入替换后的内容
68
+ fs.writeFileSync(packageJsonPath, newContent, 'utf8');
69
+
70
+ // 统计替换次数
71
+ const matches = content.match(new RegExp(oldStr, 'g'));
72
+ const replaceCount = matches ? matches.length : 0;
73
+
74
+ return {
75
+ success: true,
76
+ message: `成功替换 ${replaceCount} 处字符串`,
77
+ filePath: packageJsonPath,
78
+ replaced: true
79
+ };
80
+ } catch (error) {
81
+ return {
82
+ success: false,
83
+ message: `replaceInPackage 运行失败: ${error.message}`
84
+ };
85
+ }
86
+ }
87
+
88
+ /**
89
+ * 批量替换多个目录中的package.json文件
90
+ * @param dirs 目录数组
91
+ * @param oldStr 旧字符串
92
+ * @param newStr 新字符串
93
+ * @returns 批量替换结果
94
+ */
95
+ function replaceInMultiplePackages(dirs, oldStr, newStr) {
96
+ const results = dirs.map((dir) => ({
97
+ dir,
98
+ result: replaceInPackage(dir, oldStr, newStr)
99
+ }));
100
+
101
+ const success = results.filter((r) => r.result.success).length;
102
+ const failed = results.length - success;
103
+
104
+ return {
105
+ total: dirs.length,
106
+ success,
107
+ failed,
108
+ results
109
+ };
110
+ }
111
+
112
+ /**
113
+ * 验证package.json文件格式是否正确
114
+ * @param filePath package.json文件路径
115
+ * @returns 验证结果: { valid: boolean, error?: string }
116
+ */
117
+ function validatePackageJson(filePath) {
118
+ try {
119
+ const content = fs.readFileSync(filePath, 'utf8');
120
+ JSON.parse(content);
121
+ return { valid: true };
122
+ } catch (error) {
123
+ return {
124
+ valid: false,
125
+ error: `JSON格式错误: ${error.message}`
126
+ };
127
+ }
128
+ }
129
+
130
+ module.exports = {
131
+ replaceInPackage,
132
+ replaceInMultiplePackages,
133
+ validatePackageJson
134
+ };
package/test/demo.js ADDED
@@ -0,0 +1,3 @@
1
+ const {neoInit, neoConfigInit, inspect, preview, debug, build2lib, build2esm, neoInitByCopy} = require('../src/module/main');
2
+ // inspect('dev');
3
+ neoInitByCopy('react-ts', 'test123');