neo-cmp-cli 1.8.6-beta.2 → 1.8.6-beta.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/_virtual/AddNeoRequirePlugin.js +8 -0
- package/dist/_virtual/OverloadYield.js +5 -0
- package/dist/_virtual/_commonjsHelpers.js +40 -0
- package/dist/_virtual/array-set.js +5 -0
- package/dist/_virtual/base64-vlq.js +5 -0
- package/dist/_virtual/base64.js +5 -0
- package/dist/_virtual/binary-search.js +5 -0
- package/dist/_virtual/createCmpByZip.js +8 -0
- package/dist/_virtual/deleteCmp.js +8 -0
- package/dist/_virtual/index.js +9 -0
- package/dist/_virtual/mapping-list.js +5 -0
- package/dist/_virtual/neoLogin.js +8 -0
- package/dist/_virtual/neoService.js +8 -0
- package/dist/_virtual/openProject.js +8 -0
- package/dist/_virtual/publish2oss.js +8 -0
- package/dist/_virtual/pullCmp.js +8 -0
- package/dist/_virtual/pushCmp.js +8 -0
- package/dist/_virtual/quick-sort.js +5 -0
- package/dist/_virtual/regenerator.js +5 -0
- package/dist/_virtual/regeneratorAsync.js +5 -0
- package/dist/_virtual/regeneratorAsyncGen.js +5 -0
- package/dist/_virtual/regeneratorAsyncIterator.js +5 -0
- package/dist/_virtual/regeneratorDefine.js +5 -0
- package/dist/_virtual/regeneratorKeys.js +5 -0
- package/dist/_virtual/regeneratorRuntime.js +5 -0
- package/dist/_virtual/regeneratorValues.js +5 -0
- package/dist/_virtual/source-map-consumer.js +5 -0
- package/dist/_virtual/source-map-generator.js +5 -0
- package/dist/_virtual/source-map-support.js +5 -0
- package/dist/_virtual/source-map.js +5 -0
- package/dist/_virtual/source-node.js +5 -0
- package/dist/_virtual/typeof.js +5 -0
- package/dist/_virtual/typescript.js +5 -0
- package/dist/_virtual/util.js +5 -0
- package/dist/config/auth.config.js +50 -0
- package/dist/config/default.config.js +225 -0
- package/dist/config/index.js +27 -0
- package/dist/main.js +9 -0
- package/dist/main2.js +261 -0
- package/dist/module/inspect.js +64 -0
- package/dist/module/neoInit.js +69 -0
- package/dist/module/neoInitByCopy.js +81 -0
- package/dist/neo/neoLogin.js +663 -0
- package/dist/neo/neoRequire.js +118 -0
- package/dist/neo/neoService.js +1246 -0
- package/dist/node_modules/@babel/runtime/helpers/OverloadYield.js +19 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +29 -0
- package/dist/node_modules/@babel/runtime/helpers/esm/extends.js +13 -0
- package/dist/node_modules/@babel/runtime/helpers/regenerator.js +105 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorAsync.js +24 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js +23 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js +50 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorDefine.js +37 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorKeys.js +25 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +98 -0
- package/dist/node_modules/@babel/runtime/helpers/regeneratorValues.js +35 -0
- package/dist/node_modules/@babel/runtime/helpers/typeof.js +25 -0
- package/dist/node_modules/@babel/runtime/regenerator/index.js +29 -0
- package/dist/node_modules/buffer-from/index.js +57 -0
- package/dist/node_modules/source-map/lib/array-set.js +134 -0
- package/dist/node_modules/source-map/lib/base64-vlq.js +144 -0
- package/dist/node_modules/source-map/lib/base64.js +81 -0
- package/dist/node_modules/source-map/lib/binary-search.js +122 -0
- package/dist/node_modules/source-map/lib/mapping-list.js +94 -0
- package/dist/node_modules/source-map/lib/quick-sort.js +126 -0
- package/dist/node_modules/source-map/lib/source-map-consumer.js +1018 -0
- package/dist/node_modules/source-map/lib/source-map-generator.js +385 -0
- package/dist/node_modules/source-map/lib/source-node.js +400 -0
- package/dist/node_modules/source-map/lib/util.js +449 -0
- package/dist/node_modules/source-map/source-map.js +25 -0
- package/dist/node_modules/source-map-support/source-map-support.js +610 -0
- package/dist/node_modules/typescript/lib/typescript.js +22376 -0
- package/dist/oss/publish2oss.js +378 -0
- package/dist/plugins/AddNeoRequirePlugin.js +178 -0
- package/dist/utils/autoEntryRootDir.js +98 -0
- package/dist/utils/cmpUtils/createCmpByTemplate.js +73 -0
- package/dist/utils/cmpUtils/createCmpByZip.js +530 -0
- package/dist/utils/cmpUtils/createCommonModulesCode.js +84 -0
- package/dist/utils/cmpUtils/deleteCmp.js +98 -0
- package/dist/utils/cmpUtils/getCmpModelRegisterCode.js +38 -0
- package/dist/utils/cmpUtils/getCmpPreviewCode.js +37 -0
- package/dist/utils/cmpUtils/getCmpRegisterCode.js +38 -0
- package/dist/utils/cmpUtils/getCmpTypeByDir.js +58 -0
- package/dist/utils/cmpUtils/hasCmpTypeByDir.js +25 -0
- package/dist/utils/cmpUtils/previewCmp.js +74 -0
- package/dist/utils/cmpUtils/pullCmp.js +144 -0
- package/dist/utils/cmpUtils/pushCmp.js +290 -0
- package/dist/utils/common.js +121 -0
- package/dist/utils/configureNeoBuild.js +153 -0
- package/dist/utils/generateEntries.js +73 -0
- package/dist/utils/neoConfigInit.js +25 -0
- package/dist/utils/neoParams.js +23 -0
- package/dist/utils/pathUtils.js +48 -0
- package/dist/utils/projectNameValidator.js +89 -0
- package/dist/utils/projectUtils/createCmpProjectByTemplate.js +74 -0
- package/dist/utils/projectUtils/createCmpProjectZip.js +135 -0
- package/dist/utils/projectUtils/getEntries.js +99 -0
- package/dist/utils/projectUtils/getEntriesWithAutoRegister.js +127 -0
- package/dist/utils/projectUtils/hasNeoProject.js +31 -0
- package/dist/utils/projectUtils/openProject.js +168 -0
- package/dist/utils/projectUtils/updatePublishLog.js +45 -0
- package/dist/utils/replaceInFilesByMap.js +70 -0
- package/dist/utils/replaceInPackage.js +151 -0
- package/dist/utils/resetPackageVersion.js +134 -0
- package/package.json +2 -2
- package/src/config/auth.config.js +0 -27
- package/src/config/default.config.js +0 -176
- package/src/config/index.js +0 -9
- package/src/initData/defaultTemplate.html +0 -13
- package/src/initData/neo.config.js +0 -138
- package/src/module/inspect.js +0 -41
- package/src/module/neoInit.js +0 -55
- package/src/module/neoInitByCopy.js +0 -61
- package/src/neo/NeoUMDContent.js +0 -30
- package/src/neo/neoLogin.js +0 -565
- package/src/neo/neoRequire.js +0 -125
- package/src/neo/neoService.js +0 -874
- package/src/neo/webpack.mf.js +0 -60
- package/src/neo/wrapperContent.js +0 -16
- package/src/oss/publish2oss.js +0 -348
- package/src/plugins/AddNeoRequirePlugin-v1.js +0 -47
- package/src/plugins/AddNeoRequirePlugin.js +0 -179
- package/src/plugins/README.md +0 -109
- package/src/utils/autoEntryRootDir.js +0 -85
- package/src/utils/cmpUtils/createCmpByTemplate.js +0 -60
- package/src/utils/cmpUtils/createCmpByZip.js +0 -408
- package/src/utils/cmpUtils/createCommonModulesCode.js +0 -121
- package/src/utils/cmpUtils/deleteCmp.js +0 -63
- package/src/utils/cmpUtils/getCmpModelRegisterCode.js +0 -31
- package/src/utils/cmpUtils/getCmpPreviewCode.js +0 -43
- package/src/utils/cmpUtils/getCmpRegisterCode.js +0 -31
- package/src/utils/cmpUtils/getCmpTypeByDir.js +0 -41
- package/src/utils/cmpUtils/hasCmpTypeByDir.js +0 -11
- package/src/utils/cmpUtils/previewCmp.js +0 -55
- package/src/utils/cmpUtils/pullCmp.js +0 -104
- package/src/utils/cmpUtils/pushCmp.js +0 -230
- package/src/utils/common.js +0 -107
- package/src/utils/configureNeoBuild.js +0 -109
- package/src/utils/generateEntries.js +0 -63
- package/src/utils/neoConfigInit.js +0 -13
- package/src/utils/neoParams.js +0 -12
- package/src/utils/pathUtils.js +0 -23
- package/src/utils/projectNameValidator.js +0 -76
- package/src/utils/projectUtils/createCmpProjectByTemplate.js +0 -59
- package/src/utils/projectUtils/createCmpProjectZip.js +0 -120
- package/src/utils/projectUtils/getEntries.js +0 -80
- package/src/utils/projectUtils/getEntriesWithAutoRegister.js +0 -108
- package/src/utils/projectUtils/hasNeoProject.js +0 -17
- package/src/utils/projectUtils/openProject.js +0 -94
- package/src/utils/projectUtils/updatePublishLog.js +0 -30
- package/src/utils/replaceInFiles.js +0 -47
- package/src/utils/replaceInFilesByMap.js +0 -54
- package/src/utils/replaceInPackage.js +0 -134
- package/src/utils/resetPackageVersion.js +0 -115
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$1 = require('node:path');
|
|
4
|
+
var require$$0 = require('node:fs');
|
|
5
|
+
var require$$2 = require('open');
|
|
6
|
+
var require$$3 = require('ora');
|
|
7
|
+
var neoParams = require('../neoParams.js');
|
|
8
|
+
var common = require('../common.js');
|
|
9
|
+
var asyncToGenerator = require('../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js');
|
|
10
|
+
var index = require('../../_virtual/index.js');
|
|
11
|
+
|
|
12
|
+
var path = require$$1;
|
|
13
|
+
var fs = require$$0;
|
|
14
|
+
var open = require$$2;
|
|
15
|
+
var ora = require$$3;
|
|
16
|
+
var _require = neoParams.__require(),
|
|
17
|
+
consoleTag = _require.consoleTag;
|
|
18
|
+
var _require2 = common.__require(),
|
|
19
|
+
errorLog = _require2.errorLog;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* 打开自定义组件项目
|
|
23
|
+
*/
|
|
24
|
+
module.exports = /*#__PURE__*/function () {
|
|
25
|
+
var _ref = asyncToGenerator(/*#__PURE__*/index.mark(function _callee2(editorType, targetPath) {
|
|
26
|
+
var targetDir, stats, isMac, isWindows, isLinux, editorConfigs, editorName, spinner, _tryOpenEditor;
|
|
27
|
+
return index.wrap(function (_context2) {
|
|
28
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
29
|
+
case 0:
|
|
30
|
+
targetDir = targetPath ? path.resolve(targetPath) : process.cwd(); // 检查目录是否存在
|
|
31
|
+
if (!fs.existsSync(targetDir)) {
|
|
32
|
+
errorLog("\u76EE\u5F55\u4E0D\u5B58\u5728: " + targetDir);
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 检查是否为目录
|
|
37
|
+
stats = fs.statSync(targetDir);
|
|
38
|
+
if (!stats.isDirectory()) {
|
|
39
|
+
errorLog("\u8DEF\u5F84\u4E0D\u662F\u76EE\u5F55: " + targetDir);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
isMac = process.platform === 'darwin';
|
|
43
|
+
isWindows = process.platform === 'win32';
|
|
44
|
+
isLinux = process.platform === 'linux'; // 构建编辑器配置列表(按优先级排序)
|
|
45
|
+
editorConfigs = [];
|
|
46
|
+
editorName = '编辑器'; // 根据编辑器类型和平台构建配置列表
|
|
47
|
+
if (editorType === 'cursor') {
|
|
48
|
+
editorName = 'Cursor';
|
|
49
|
+
// macOS 可以使用应用名称或命令名称
|
|
50
|
+
if (isMac) {
|
|
51
|
+
editorConfigs = [{
|
|
52
|
+
app: {
|
|
53
|
+
name: 'cursor'
|
|
54
|
+
}
|
|
55
|
+
}, {
|
|
56
|
+
app: {
|
|
57
|
+
name: 'Cursor'
|
|
58
|
+
}
|
|
59
|
+
}];
|
|
60
|
+
} else if (isWindows || isLinux) {
|
|
61
|
+
editorConfigs = [{
|
|
62
|
+
app: {
|
|
63
|
+
name: 'cursor'
|
|
64
|
+
}
|
|
65
|
+
}];
|
|
66
|
+
}
|
|
67
|
+
} else if (editorType === 'vscode' || editorType === 'code') {
|
|
68
|
+
editorName = 'Visual Studio Code';
|
|
69
|
+
if (isMac) {
|
|
70
|
+
editorConfigs = [{
|
|
71
|
+
app: {
|
|
72
|
+
name: 'code'
|
|
73
|
+
}
|
|
74
|
+
}, {
|
|
75
|
+
app: {
|
|
76
|
+
name: 'Visual Studio Code'
|
|
77
|
+
}
|
|
78
|
+
}];
|
|
79
|
+
} else if (isWindows || isLinux) {
|
|
80
|
+
editorConfigs = [{
|
|
81
|
+
app: {
|
|
82
|
+
name: 'code'
|
|
83
|
+
}
|
|
84
|
+
}];
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
// 自动检测:优先尝试 Cursor,如果失败则尝试 VSCode
|
|
88
|
+
if (isMac) {
|
|
89
|
+
editorConfigs = [{
|
|
90
|
+
app: {
|
|
91
|
+
name: 'cursor'
|
|
92
|
+
}
|
|
93
|
+
}, {
|
|
94
|
+
app: {
|
|
95
|
+
name: 'Cursor'
|
|
96
|
+
}
|
|
97
|
+
}, {
|
|
98
|
+
app: {
|
|
99
|
+
name: 'code'
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
app: {
|
|
103
|
+
name: 'Visual Studio Code'
|
|
104
|
+
}
|
|
105
|
+
}];
|
|
106
|
+
} else if (isWindows || isLinux) {
|
|
107
|
+
editorConfigs = [{
|
|
108
|
+
app: {
|
|
109
|
+
name: 'cursor'
|
|
110
|
+
}
|
|
111
|
+
}, {
|
|
112
|
+
app: {
|
|
113
|
+
name: 'code'
|
|
114
|
+
}
|
|
115
|
+
}];
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (editorConfigs.length === 0) {
|
|
119
|
+
errorLog("\u4E0D\u652F\u6301\u7684\u64CD\u4F5C\u7CFB\u7EDF: " + process.platform);
|
|
120
|
+
process.exit(1);
|
|
121
|
+
}
|
|
122
|
+
spinner = ora(consoleTag + "\u6B63\u5728\u5C1D\u8BD5\u4F7F\u7528 " + editorName + " \u6253\u5F00\u9879\u76EE: " + targetDir).start(); // 尝试打开编辑器
|
|
123
|
+
_tryOpenEditor = /*#__PURE__*/function () {
|
|
124
|
+
var _ref2 = asyncToGenerator(/*#__PURE__*/index.mark(function _callee(index$1) {
|
|
125
|
+
var config;
|
|
126
|
+
return index.wrap(function (_context) {
|
|
127
|
+
while (1) switch (_context.prev = _context.next) {
|
|
128
|
+
case 0:
|
|
129
|
+
if (index$1 >= editorConfigs.length) {
|
|
130
|
+
errorLog("\u65E0\u6CD5\u6253\u5F00\u7F16\u8F91\u5668\uFF0C\u5DF2\u5C1D\u8BD5\u6240\u6709\u53EF\u7528\u65B9\u5F0F\u3002\n \u8BF7\u786E\u4FDD\u5DF2\u5B89\u88C5 Cursor \u6216 Visual Studio Code \u5E76\u5C06\u5176\u6DFB\u52A0\u5230\u7CFB\u7EDF PATH \u4E2D\u3002", spinner);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
config = editorConfigs[index$1];
|
|
134
|
+
_context.prev = 1;
|
|
135
|
+
_context.next = 2;
|
|
136
|
+
return open(targetDir, config);
|
|
137
|
+
case 2:
|
|
138
|
+
spinner.stop();
|
|
139
|
+
// 成功打开,不需要继续尝试
|
|
140
|
+
_context.next = 4;
|
|
141
|
+
break;
|
|
142
|
+
case 3:
|
|
143
|
+
_context.prev = 3;
|
|
144
|
+
_context["catch"](1);
|
|
145
|
+
_context.next = 4;
|
|
146
|
+
return _tryOpenEditor(index$1 + 1);
|
|
147
|
+
case 4:
|
|
148
|
+
case "end":
|
|
149
|
+
return _context.stop();
|
|
150
|
+
}
|
|
151
|
+
}, _callee, null, [[1, 3]]);
|
|
152
|
+
}));
|
|
153
|
+
return function tryOpenEditor(_x3) {
|
|
154
|
+
return _ref2.apply(this, arguments);
|
|
155
|
+
};
|
|
156
|
+
}();
|
|
157
|
+
_context2.next = 1;
|
|
158
|
+
return _tryOpenEditor(0);
|
|
159
|
+
case 1:
|
|
160
|
+
case "end":
|
|
161
|
+
return _context2.stop();
|
|
162
|
+
}
|
|
163
|
+
}, _callee2);
|
|
164
|
+
}));
|
|
165
|
+
return function (_x, _x2) {
|
|
166
|
+
return _ref.apply(this, arguments);
|
|
167
|
+
};
|
|
168
|
+
}();
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('node:fs');
|
|
4
|
+
require('lodash');
|
|
5
|
+
var pathUtils = require('../pathUtils.js');
|
|
6
|
+
|
|
7
|
+
var updatePublishLog;
|
|
8
|
+
var hasRequiredUpdatePublishLog;
|
|
9
|
+
|
|
10
|
+
function requireUpdatePublishLog () {
|
|
11
|
+
if (hasRequiredUpdatePublishLog) return updatePublishLog;
|
|
12
|
+
hasRequiredUpdatePublishLog = 1;
|
|
13
|
+
var fs = require$$0;
|
|
14
|
+
var _require = pathUtils.__require(),
|
|
15
|
+
resolveToCurrentRoot = _require.resolveToCurrentRoot;
|
|
16
|
+
/**
|
|
17
|
+
* 更新发布日志
|
|
18
|
+
*/
|
|
19
|
+
updatePublishLog = function (curHistoryData) {
|
|
20
|
+
// 创建存放 cli 的临时目录
|
|
21
|
+
var cliTempDir = resolveToCurrentRoot('./.neo-cli');
|
|
22
|
+
if (!fs.existsSync(cliTempDir)) {
|
|
23
|
+
fs.mkdirSync(cliTempDir);
|
|
24
|
+
}
|
|
25
|
+
var historyFile = cliTempDir + "/history.json";
|
|
26
|
+
var historyData = {};
|
|
27
|
+
if (fs.existsSync(historyFile)) {
|
|
28
|
+
// 读取历史文件
|
|
29
|
+
try {
|
|
30
|
+
historyData = JSON.parse(fs.readFileSync(historyFile, 'utf8'));
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error('读取历史文件失败:', error);
|
|
33
|
+
historyData = {};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
var historyKey = new Date().toString();
|
|
37
|
+
historyData[historyKey] = curHistoryData;
|
|
38
|
+
|
|
39
|
+
// 更新历史文件
|
|
40
|
+
fs.writeFileSync(historyFile, JSON.stringify(historyData, null, 2));
|
|
41
|
+
};
|
|
42
|
+
return updatePublishLog;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
exports.__require = requireUpdatePublishLog;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('fs-extra');
|
|
4
|
+
var require$$1 = require('node:path');
|
|
5
|
+
|
|
6
|
+
var replaceInFilesByMap_1;
|
|
7
|
+
var hasRequiredReplaceInFilesByMap;
|
|
8
|
+
|
|
9
|
+
function requireReplaceInFilesByMap () {
|
|
10
|
+
if (hasRequiredReplaceInFilesByMap) return replaceInFilesByMap_1;
|
|
11
|
+
hasRequiredReplaceInFilesByMap = 1;
|
|
12
|
+
var fs = require$$0;
|
|
13
|
+
var path = require$$1;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 全局替换项目中的指定字符串
|
|
17
|
+
* @param dir 项目目录
|
|
18
|
+
* @param needReplaceStrMap {
|
|
19
|
+
* [oldStr]: newStr
|
|
20
|
+
* }
|
|
21
|
+
* @param fileExtensions 文件扩展名
|
|
22
|
+
*/
|
|
23
|
+
function replaceInFilesByMap(dir, needReplaceStrMap, fileExtensions) {
|
|
24
|
+
if (needReplaceStrMap === void 0) {
|
|
25
|
+
needReplaceStrMap = {};
|
|
26
|
+
}
|
|
27
|
+
if (fileExtensions === void 0) {
|
|
28
|
+
fileExtensions = ['.js', '.jsx', '.ts', '.tsx', '.vue', '.html', '.css', '.scss', '.json'];
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
// 读取指定目录下的所有文件
|
|
32
|
+
var files = fs.readdirSync(dir);
|
|
33
|
+
|
|
34
|
+
// 遍历所有文件
|
|
35
|
+
files.forEach(function (file) {
|
|
36
|
+
var filePath = path.join(dir, file);
|
|
37
|
+
// 获取文件状态
|
|
38
|
+
var stat = fs.statSync(filePath);
|
|
39
|
+
// 如果文件是目录,则递归处理子目录
|
|
40
|
+
if (stat.isDirectory() && !file.startsWith('.') && file !== 'node_modules') {
|
|
41
|
+
// 递归处理子目录
|
|
42
|
+
replaceInFilesByMap(filePath, needReplaceStrMap, fileExtensions);
|
|
43
|
+
} else if (stat.isFile()) {
|
|
44
|
+
// 检查文件扩展名
|
|
45
|
+
var ext = path.extname(file);
|
|
46
|
+
if (fileExtensions.includes(ext)) {
|
|
47
|
+
if (needReplaceStrMap && Object.keys(needReplaceStrMap).length > 0) {
|
|
48
|
+
var content = fs.readFileSync(filePath, 'utf8');
|
|
49
|
+
Object.keys(needReplaceStrMap).forEach(function (key) {
|
|
50
|
+
var oldStr = key;
|
|
51
|
+
var newStr = needReplaceStrMap[key];
|
|
52
|
+
if (content.includes(oldStr)) {
|
|
53
|
+
content = content.replace(new RegExp(oldStr, 'g'), newStr); // 全局替换
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// 写入文件(更新文件内容)
|
|
57
|
+
fs.writeFileSync(filePath, content, 'utf8');
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.error('replaceInFiles 运行失败:', error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
replaceInFilesByMap_1 = replaceInFilesByMap;
|
|
67
|
+
return replaceInFilesByMap_1;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
exports.__require = requireReplaceInFilesByMap;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('fs-extra');
|
|
4
|
+
var require$$1 = require('node:path');
|
|
5
|
+
|
|
6
|
+
var replaceInPackage_1;
|
|
7
|
+
var hasRequiredReplaceInPackage;
|
|
8
|
+
|
|
9
|
+
function requireReplaceInPackage () {
|
|
10
|
+
if (hasRequiredReplaceInPackage) return replaceInPackage_1;
|
|
11
|
+
hasRequiredReplaceInPackage = 1;
|
|
12
|
+
var fs = require$$0;
|
|
13
|
+
var path = require$$1;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* package.json文件中替换指定字符串
|
|
17
|
+
* @param dir 项目目录
|
|
18
|
+
* @param oldStr 旧字符串
|
|
19
|
+
* @param newStr 新字符串
|
|
20
|
+
* @returns 替换结果对象: { success: boolean, message: string, filePath?: string, replaced?: boolean }
|
|
21
|
+
*/
|
|
22
|
+
function replaceInPackage(dir, oldStr, newStr) {
|
|
23
|
+
try {
|
|
24
|
+
// 检查目录是否存在
|
|
25
|
+
if (!fs.existsSync(dir)) {
|
|
26
|
+
return {
|
|
27
|
+
success: false,
|
|
28
|
+
message: "\u76EE\u5F55\u4E0D\u5B58\u5728: " + dir
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// 检查是否为目录
|
|
33
|
+
var stat = fs.statSync(dir);
|
|
34
|
+
if (!stat.isDirectory()) {
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
message: "\u6307\u5B9A\u8DEF\u5F84\u4E0D\u662F\u76EE\u5F55: " + dir
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// 构建package.json的完整路径
|
|
42
|
+
var packageJsonPath = path.join(dir, 'package.json');
|
|
43
|
+
|
|
44
|
+
// 检查package.json文件是否存在
|
|
45
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
46
|
+
return {
|
|
47
|
+
success: false,
|
|
48
|
+
message: "package.json\u6587\u4EF6\u4E0D\u5B58\u5728: " + packageJsonPath
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// 读取package.json文件内容
|
|
53
|
+
var content = fs.readFileSync(packageJsonPath, 'utf8');
|
|
54
|
+
|
|
55
|
+
// 检查是否包含要替换的字符串
|
|
56
|
+
if (!content.includes(oldStr)) {
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
message: "package.json\u4E2D\u672A\u627E\u5230\u8981\u66FF\u6362\u7684\u5B57\u7B26\u4E32: " + oldStr,
|
|
60
|
+
filePath: packageJsonPath,
|
|
61
|
+
replaced: false
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// 执行全局替换
|
|
66
|
+
var newContent = content.replace(new RegExp(oldStr, 'g'), newStr);
|
|
67
|
+
|
|
68
|
+
// 检查是否有实际变化
|
|
69
|
+
if (content === newContent) {
|
|
70
|
+
return {
|
|
71
|
+
success: true,
|
|
72
|
+
message: '替换后内容无变化',
|
|
73
|
+
filePath: packageJsonPath,
|
|
74
|
+
replaced: false
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// 写入替换后的内容
|
|
79
|
+
fs.writeFileSync(packageJsonPath, newContent, 'utf8');
|
|
80
|
+
|
|
81
|
+
// 统计替换次数
|
|
82
|
+
var matches = content.match(new RegExp(oldStr, 'g'));
|
|
83
|
+
var replaceCount = matches ? matches.length : 0;
|
|
84
|
+
return {
|
|
85
|
+
success: true,
|
|
86
|
+
message: "\u6210\u529F\u66FF\u6362 " + replaceCount + " \u5904\u5B57\u7B26\u4E32",
|
|
87
|
+
filePath: packageJsonPath,
|
|
88
|
+
replaced: true
|
|
89
|
+
};
|
|
90
|
+
} catch (error) {
|
|
91
|
+
return {
|
|
92
|
+
success: false,
|
|
93
|
+
message: "replaceInPackage \u8FD0\u884C\u5931\u8D25: " + error.message
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* 批量替换多个目录中的package.json文件
|
|
100
|
+
* @param dirs 目录数组
|
|
101
|
+
* @param oldStr 旧字符串
|
|
102
|
+
* @param newStr 新字符串
|
|
103
|
+
* @returns 批量替换结果
|
|
104
|
+
*/
|
|
105
|
+
function replaceInMultiplePackages(dirs, oldStr, newStr) {
|
|
106
|
+
var results = dirs.map(function (dir) {
|
|
107
|
+
return {
|
|
108
|
+
dir: dir,
|
|
109
|
+
result: replaceInPackage(dir, oldStr, newStr)
|
|
110
|
+
};
|
|
111
|
+
});
|
|
112
|
+
var success = results.filter(function (r) {
|
|
113
|
+
return r.result.success;
|
|
114
|
+
}).length;
|
|
115
|
+
var failed = results.length - success;
|
|
116
|
+
return {
|
|
117
|
+
total: dirs.length,
|
|
118
|
+
success: success,
|
|
119
|
+
failed: failed,
|
|
120
|
+
results: results
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 验证package.json文件格式是否正确
|
|
126
|
+
* @param filePath package.json文件路径
|
|
127
|
+
* @returns 验证结果: { valid: boolean, error?: string }
|
|
128
|
+
*/
|
|
129
|
+
function validatePackageJson(filePath) {
|
|
130
|
+
try {
|
|
131
|
+
var content = fs.readFileSync(filePath, 'utf8');
|
|
132
|
+
JSON.parse(content);
|
|
133
|
+
return {
|
|
134
|
+
valid: true
|
|
135
|
+
};
|
|
136
|
+
} catch (error) {
|
|
137
|
+
return {
|
|
138
|
+
valid: false,
|
|
139
|
+
error: "JSON\u683C\u5F0F\u9519\u8BEF: " + error.message
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
replaceInPackage_1 = {
|
|
144
|
+
replaceInPackage: replaceInPackage,
|
|
145
|
+
replaceInMultiplePackages: replaceInMultiplePackages,
|
|
146
|
+
validatePackageJson: validatePackageJson
|
|
147
|
+
};
|
|
148
|
+
return replaceInPackage_1;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
exports.__require = requireReplaceInPackage;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var require$$0 = require('fs-extra');
|
|
4
|
+
var require$$1 = require('node:path');
|
|
5
|
+
|
|
6
|
+
var resetPackageVersion_1;
|
|
7
|
+
var hasRequiredResetPackageVersion;
|
|
8
|
+
|
|
9
|
+
function requireResetPackageVersion () {
|
|
10
|
+
if (hasRequiredResetPackageVersion) return resetPackageVersion_1;
|
|
11
|
+
hasRequiredResetPackageVersion = 1;
|
|
12
|
+
var fs = require$$0;
|
|
13
|
+
var path = require$$1;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 重置 package.json 文件中的版本号到指定版本
|
|
17
|
+
* @param dir 项目目录
|
|
18
|
+
* @param version 目标版本号,默认为 '1.0.0'
|
|
19
|
+
* @returns 替换结果对象: { success: boolean, message: string, filePath?: string, oldVersion?: string, newVersion?: string }
|
|
20
|
+
*/
|
|
21
|
+
function resetPackageVersion(dir, version) {
|
|
22
|
+
if (version === void 0) {
|
|
23
|
+
version = '1.0.0';
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
// 检查目录是否存在
|
|
27
|
+
if (!fs.existsSync(dir)) {
|
|
28
|
+
return {
|
|
29
|
+
success: false,
|
|
30
|
+
message: "\u76EE\u5F55\u4E0D\u5B58\u5728: " + dir
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// 检查是否为目录
|
|
35
|
+
var stat = fs.statSync(dir);
|
|
36
|
+
if (!stat.isDirectory()) {
|
|
37
|
+
return {
|
|
38
|
+
success: false,
|
|
39
|
+
message: "\u6307\u5B9A\u8DEF\u5F84\u4E0D\u662F\u76EE\u5F55: " + dir
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// 构建package.json的完整路径
|
|
44
|
+
var packageJsonPath = path.join(dir, 'package.json');
|
|
45
|
+
|
|
46
|
+
// 检查package.json文件是否存在
|
|
47
|
+
if (!fs.existsSync(packageJsonPath)) {
|
|
48
|
+
return {
|
|
49
|
+
success: false,
|
|
50
|
+
message: "package.json\u6587\u4EF6\u4E0D\u5B58\u5728: " + packageJsonPath
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// 读取并解析package.json文件
|
|
55
|
+
var content = fs.readFileSync(packageJsonPath, 'utf8');
|
|
56
|
+
var packageJson = {};
|
|
57
|
+
try {
|
|
58
|
+
packageJson = JSON.parse(content);
|
|
59
|
+
} catch (error) {
|
|
60
|
+
return {
|
|
61
|
+
success: false,
|
|
62
|
+
message: "package.json \u6587\u4EF6\u89E3\u6790\u5931\u8D25: " + error.message + "\u3002"
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// 保存旧版本号
|
|
67
|
+
var oldVersion = packageJson.version || '未定义';
|
|
68
|
+
|
|
69
|
+
// 检查版本号是否已经是目标版本
|
|
70
|
+
if (packageJson.version === version) {
|
|
71
|
+
return {
|
|
72
|
+
success: true,
|
|
73
|
+
message: "package.json \u7248\u672C\u53F7\u5DF2\u7ECF\u662F " + version,
|
|
74
|
+
filePath: packageJsonPath,
|
|
75
|
+
oldVersion: oldVersion,
|
|
76
|
+
newVersion: version
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// 更新版本号
|
|
81
|
+
packageJson.version = version;
|
|
82
|
+
|
|
83
|
+
// 写入package.json,保持格式化(2空格缩进)
|
|
84
|
+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2) + '\n', 'utf8');
|
|
85
|
+
return {
|
|
86
|
+
success: true,
|
|
87
|
+
message: "\u5DF2\u5C06 package.json \u7248\u672C\u53F7\u4ECE " + oldVersion + " \u91CD\u7F6E\u4E3A " + version,
|
|
88
|
+
filePath: packageJsonPath,
|
|
89
|
+
oldVersion: oldVersion,
|
|
90
|
+
newVersion: version
|
|
91
|
+
};
|
|
92
|
+
} catch (error) {
|
|
93
|
+
return {
|
|
94
|
+
success: false,
|
|
95
|
+
message: "resetPackageVersion \u8FD0\u884C\u5931\u8D25: " + error.message
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 批量重置多个目录中 package.json 文件的版本号
|
|
102
|
+
* @param dirs 目录数组
|
|
103
|
+
* @param version 目标版本号,默认为 '1.0.0'
|
|
104
|
+
* @returns 批量重置结果
|
|
105
|
+
*/
|
|
106
|
+
function resetVersionInMulPackages(dirs, version) {
|
|
107
|
+
if (version === void 0) {
|
|
108
|
+
version = '1.0.0';
|
|
109
|
+
}
|
|
110
|
+
var results = dirs.map(function (dir) {
|
|
111
|
+
return {
|
|
112
|
+
dir: dir,
|
|
113
|
+
result: resetPackageVersion(dir, version)
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
var successCount = results.filter(function (r) {
|
|
117
|
+
return r.result.success;
|
|
118
|
+
}).length;
|
|
119
|
+
var failedCount = results.length - successCount;
|
|
120
|
+
return {
|
|
121
|
+
total: dirs.length,
|
|
122
|
+
success: successCount,
|
|
123
|
+
failed: failedCount,
|
|
124
|
+
results: results
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
resetPackageVersion_1 = {
|
|
128
|
+
resetPackageVersion: resetPackageVersion,
|
|
129
|
+
resetVersionInMulPackages: resetVersionInMulPackages
|
|
130
|
+
};
|
|
131
|
+
return resetPackageVersion_1;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
exports.__require = requireResetPackageVersion;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neo-cmp-cli",
|
|
3
|
-
"version": "1.8.6-beta.
|
|
3
|
+
"version": "1.8.6-beta.3",
|
|
4
4
|
"description": "Neo 自定义组件开发工具,支持react 和 vue2.0技术栈。",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"neo-cli",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
21
|
"bin/*",
|
|
22
|
-
"
|
|
22
|
+
"dist/*",
|
|
23
23
|
"template/*",
|
|
24
24
|
"test/*"
|
|
25
25
|
],
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
const curConfig = require('../config/index'); // 获取当前项目根目录下的配置文件
|
|
2
|
-
|
|
3
|
-
const neoConfig = curConfig.neoConfig || {};
|
|
4
|
-
// const authConfig = neoConfig.auth || {};
|
|
5
|
-
|
|
6
|
-
// NeoCRM 跨 Pod 授权配置
|
|
7
|
-
module.exports = {
|
|
8
|
-
loginURL: neoConfig.loginURL || 'https://login-cd.xiaoshouyi.com/auc/oauth2/auth', // 登录 URL,从创建连接器的客户端信息中获取(Login_Url)
|
|
9
|
-
tokenAPI: neoConfig.tokenAPI || 'https://login-cd.xiaoshouyi.com/auc/oauth2/token', // Token 获取接口地址(默认:https://login.xiaoshouyi.com/auc/oauth2/token)
|
|
10
|
-
redirectUri: neoConfig.redirectUri || 'http://localhost:1028', // 固定端口号,用于接收授权码
|
|
11
|
-
// 重定向 URI,动态生成
|
|
12
|
-
getRedirectURI: (port) => {
|
|
13
|
-
return `http://localhost:${port}`;
|
|
14
|
-
},
|
|
15
|
-
// 获取 授权码 相关配置
|
|
16
|
-
response_type: 'code', // 认证类型;此参数值必须为 code
|
|
17
|
-
// client_id: authConfig.client_id || '04c8b45c4dbe36426a660bf70d3fe3e7', // 客户端 ID,跨 Pod 级链接器【内置】
|
|
18
|
-
client_id: '04c8b45c4dbe36426a660bf70d3fe3e7', // 客户端 ID,跨 Pod 级链接器【内置】
|
|
19
|
-
scope: 'all', // 固定值:all
|
|
20
|
-
oauthType: 'standard', // 固定值:standard
|
|
21
|
-
access_type: 'offline', // 此参数值为 online 时,不产生 refresh_token ;此参数值为 offline 时,返回refresh_token
|
|
22
|
-
|
|
23
|
-
// 获取 令牌 相关配置
|
|
24
|
-
// client_secret: authConfig.client_secret || '370817d1336a3737f95c671eea39a23b', // 客户端秘钥,跨 Pod 级链接器【内置】
|
|
25
|
-
client_secret: '370817d1336a3737f95c671eea39a23b', // 客户端秘钥,跨 Pod 级链接器【内置】
|
|
26
|
-
grant_type: 'authorization_code' // 授权类型;此参数值必须为 authorization_code
|
|
27
|
-
};
|