utiller 1.0.382 → 1.0.384
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/lib/utiller/index.js +50 -25
- package/lib/utiller/nodeutiller.js +78 -76
- package/package.json +1 -1
- package/template/sample.package.json +1 -1
package/lib/utiller/index.js
CHANGED
|
@@ -308,20 +308,30 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
308
308
|
});
|
|
309
309
|
/**
|
|
310
310
|
* 使用 ES10+ 和 Lodash,將短句子轉換為潛在的搜尋關鍵字陣列。
|
|
311
|
-
* 策略:1.
|
|
311
|
+
* 策略:1. 提取英文單字 2. 提取規格/色號詞組 3. 清理中文 4. 窮舉中文 N-gram 5. 去重和過濾
|
|
312
312
|
* @param {string} sentence - 原始字串。
|
|
313
|
-
* @param {number} [maxLength=50] -
|
|
314
|
-
* @
|
|
313
|
+
* @param {number} [maxLength=50] - 允許的最大字串長度。
|
|
314
|
+
* @param {number} [maxNgramLength=3] - N-gram 的最大長度,預設為 3。
|
|
315
|
+
* @returns {string[]} - 潛在關鍵字陣列(至少 2 個字/中文字)。
|
|
315
316
|
*/
|
|
316
317
|
(0, _defineProperty2["default"])(this, "generateUniversalKeywords", function (sentence) {
|
|
317
318
|
var maxLength = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 50;
|
|
319
|
+
var maxNgramLength = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 4;
|
|
318
320
|
// 引入 Lodash,確保在執行環境中可用
|
|
319
|
-
// 由於在瀏覽器環境中執行,我們假設 Lodash 已經全域引入或在 Node.js 環境中運行。
|
|
320
|
-
// 在大多數現代前端框架中,這行可能需要根據實際模組系統調整(例如 import _ from 'lodash')。
|
|
321
321
|
if (!sentence || typeof sentence !== "string") {
|
|
322
322
|
return [];
|
|
323
323
|
}
|
|
324
|
-
|
|
324
|
+
|
|
325
|
+
// 假設 Lodash 已經全域引入為 '_'
|
|
326
|
+
if (typeof _lodash["default"] === "undefined") {
|
|
327
|
+
console.error("Lodash is not available. Please ensure it is imported.");
|
|
328
|
+
return [];
|
|
329
|
+
}
|
|
330
|
+
var textToProcess = sentence.trim();
|
|
331
|
+
var keywords = []; // 最終所有關鍵字的集合
|
|
332
|
+
|
|
333
|
+
// 參數安全檢查 (確保 N-gram 長度至少為 2)
|
|
334
|
+
maxNgramLength = Math.max(2, maxNgramLength);
|
|
325
335
|
|
|
326
336
|
// 警告/截斷邏輯
|
|
327
337
|
if (textToProcess.length > maxLength) {
|
|
@@ -329,23 +339,40 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
329
339
|
textToProcess = textToProcess.substring(0, maxLength);
|
|
330
340
|
}
|
|
331
341
|
|
|
332
|
-
// 步驟 1:
|
|
342
|
+
// --- 步驟 1: 提取完整英文單字 (SACHIA, sachia, Sachia) ---
|
|
343
|
+
var englishWords = textToProcess.match(/[a-zA-Z]+/g) || [];
|
|
344
|
+
englishWords.forEach(function (word) {
|
|
345
|
+
if (word.length >= 2) {
|
|
346
|
+
keywords.push(word.toUpperCase());
|
|
347
|
+
keywords.push(word.toLowerCase());
|
|
348
|
+
var capitalized = word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
349
|
+
keywords.push(capitalized);
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
// --- 步驟 2: 提取規格、數量和色號關鍵字 (12W, 10ml, 10色, 1號) ---
|
|
354
|
+
var specKeywordsRegex = /\b[0-9]+[a-zA-Z]{1,4}\b|\b[0-9]{1,3}(w|ml|g|oz|k)\b|[\u4e00-\u9fa5a-zA-Z0-9]{1,4}(色|號)[\u4e00-\u9fa5a-zA-Z0-9]{0,2}/gi;
|
|
355
|
+
var specKeywords = (textToProcess.match(specKeywordsRegex) || []).filter(function (k) {
|
|
356
|
+
return k.length >= 2;
|
|
357
|
+
}).map(function (k) {
|
|
358
|
+
return k.toLowerCase();
|
|
359
|
+
});
|
|
360
|
+
keywords.push.apply(keywords, (0, _toConsumableArray2["default"])(specKeywords));
|
|
361
|
+
|
|
362
|
+
// --- 步驟 3: 清理和標準化 (用於 N-gram 提取) ---
|
|
363
|
+
|
|
333
364
|
var cleanText = textToProcess.toLowerCase();
|
|
334
365
|
|
|
335
|
-
//
|
|
336
|
-
cleanText = cleanText.replace(/[
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
.replace(/\s+/g, "") //
|
|
366
|
+
// 1. 將所有提取過的規格詞彙(數字+單位/字母)替換為空格
|
|
367
|
+
cleanText = cleanText.replace(/[0-9]+([\u4e00-\u9fa5a-z]{1,4}|[\/\-\~\\])/g, " ").replace(/\b[a-z]{1,4}\b/g, " ").replace(/\b[0-9]{1,3}\b/g, " ");
|
|
368
|
+
|
|
369
|
+
// 2. 移除通用詞和符號
|
|
370
|
+
cleanText = cleanText.replace(/[!@#$%^&*()_+={}\[\]:;"'<>,.?\/\\|`~]/g, " ").replace(/系列|一組|單色|多款|套組|全套|專用|迷你|頂級|高品質|超閃|奢華|最新|款式|新款|超亮|的|與|和|閃|美甲/g, " ").replace(/\s+/g, "") // **移除所有空格**
|
|
340
371
|
.trim();
|
|
341
|
-
if (cleanText.length < 2) {
|
|
342
|
-
return []; // 如果清理後長度不足,直接返回空陣列
|
|
343
|
-
}
|
|
344
372
|
|
|
345
|
-
// 步驟
|
|
346
|
-
var keywords = [];
|
|
373
|
+
// --- 步驟 4: 窮舉所有 >= 2 個字的 N-gram 詞組 (針對純中文) ---
|
|
347
374
|
var minLength = 2;
|
|
348
|
-
|
|
375
|
+
// maxNgramLength 現在是從參數傳入的
|
|
349
376
|
|
|
350
377
|
for (var len = minLength; len <= maxNgramLength; len++) {
|
|
351
378
|
for (var i = 0; i <= cleanText.length - len; i++) {
|
|
@@ -354,14 +381,12 @@ var Utiller = /*#__PURE__*/function () {
|
|
|
354
381
|
}
|
|
355
382
|
}
|
|
356
383
|
|
|
357
|
-
// 步驟
|
|
358
|
-
var finalKeywords = _lodash["default"].chain(keywords)
|
|
359
|
-
// 確保只包含長度 >= 2 的詞
|
|
360
|
-
.filter(function (k) {
|
|
384
|
+
// --- 步驟 5: 標準化、去重和過濾 ---
|
|
385
|
+
var finalKeywords = _lodash["default"].chain(keywords).filter(function (k) {
|
|
361
386
|
return k.length >= 2;
|
|
362
|
-
})
|
|
363
|
-
|
|
364
|
-
.uniq().value();
|
|
387
|
+
}).filter(function (k) {
|
|
388
|
+
return k.length > 2 || !/^[\u4e00-\u9fa5a-z0-9]$/.test(k);
|
|
389
|
+
}).uniq().sortBy().value();
|
|
365
390
|
return finalKeywords;
|
|
366
391
|
});
|
|
367
392
|
/**
|
|
@@ -16,7 +16,7 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
17
17
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
var
|
|
19
|
+
var _path5 = _interopRequireDefault(require("path"));
|
|
20
20
|
var _fs = _interopRequireDefault(require("fs"));
|
|
21
21
|
var _promises = _interopRequireDefault(require("fs/promises"));
|
|
22
22
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
@@ -96,7 +96,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
96
96
|
*/
|
|
97
97
|
(0, _defineProperty2["default"])(_this, "getPathAfterSpecificFolder", function (fullPath) {
|
|
98
98
|
var folder = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "src";
|
|
99
|
-
var parts = fullPath.split(
|
|
99
|
+
var parts = fullPath.split(_path5["default"].sep);
|
|
100
100
|
for (var i = parts.length - 1; i >= 0; i--) {
|
|
101
101
|
if (parts[i] === folder) {
|
|
102
102
|
return "/" + parts.slice(i + 1).join("/");
|
|
@@ -118,10 +118,10 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
118
118
|
return (0, _createClass2["default"])(NodeUtiller, [{
|
|
119
119
|
key: "findSpecificFolderByPath",
|
|
120
120
|
value: function findSpecificFolderByPath(path, folderName) {
|
|
121
|
-
var absolute =
|
|
122
|
-
var parts = absolute.split(
|
|
121
|
+
var absolute = _path5["default"].resolve(path);
|
|
122
|
+
var parts = absolute.split(_path5["default"].sep);
|
|
123
123
|
while (parts.length) {
|
|
124
|
-
var joined =
|
|
124
|
+
var joined = _path5["default"].join.apply(_path5["default"], (0, _toConsumableArray2["default"])(parts).concat([folderName]));
|
|
125
125
|
if (_fs["default"].existsSync(joined)) return joined;
|
|
126
126
|
parts.pop();
|
|
127
127
|
}
|
|
@@ -192,7 +192,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
192
192
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
193
193
|
var entry = _step.value;
|
|
194
194
|
if (excludes.includes(entry.name)) continue;
|
|
195
|
-
var fullPath =
|
|
195
|
+
var fullPath = _path5["default"].join(path, entry.name);
|
|
196
196
|
if (entry.isDirectory()) {
|
|
197
197
|
result.push.apply(result, (0, _toConsumableArray2["default"])(this.findFilePathBy.apply(this, [fullPath, predicate].concat(excludes))));
|
|
198
198
|
} else if (entry.isFile()) {
|
|
@@ -226,9 +226,9 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
226
226
|
this.appendError("renameFile \u932F\u8AA4, path: ".concat(path, ", newName: ").concat(newName));
|
|
227
227
|
return;
|
|
228
228
|
}
|
|
229
|
-
var dir =
|
|
230
|
-
var ext =
|
|
231
|
-
var newPath =
|
|
229
|
+
var dir = _path5["default"].dirname(path);
|
|
230
|
+
var ext = _path5["default"].extname(path);
|
|
231
|
+
var newPath = _path5["default"].join(dir, "".concat(newName).concat(ext));
|
|
232
232
|
_fs["default"].renameSync(path, newPath);
|
|
233
233
|
}
|
|
234
234
|
|
|
@@ -236,7 +236,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
236
236
|
}, {
|
|
237
237
|
key: "getPathInfo",
|
|
238
238
|
value: function getPathInfo(path) {
|
|
239
|
-
var absolute =
|
|
239
|
+
var absolute = _path5["default"].resolve(path);
|
|
240
240
|
var obj = {
|
|
241
241
|
path: path,
|
|
242
242
|
absolute: absolute,
|
|
@@ -290,14 +290,14 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
290
290
|
key: "persistByPath",
|
|
291
291
|
value: /** '/a/b/c.js' 把它變成真的 */
|
|
292
292
|
function persistByPath(targetPath) {
|
|
293
|
-
var isAbsolute =
|
|
293
|
+
var isAbsolute = _path5["default"].isAbsolute(targetPath);
|
|
294
294
|
var parts = targetPath.split("/").filter(Boolean);
|
|
295
295
|
var lastPart = parts[parts.length - 1];
|
|
296
|
-
var isFile =
|
|
296
|
+
var isFile = _path5["default"].extname(lastPart) !== ""; // ← 正規判斷副檔名
|
|
297
297
|
|
|
298
|
-
var current = isAbsolute ?
|
|
298
|
+
var current = isAbsolute ? _path5["default"].sep : "";
|
|
299
299
|
for (var i = 0; i < parts.length; i++) {
|
|
300
|
-
current =
|
|
300
|
+
current = _path5["default"].join(current, parts[i]);
|
|
301
301
|
if (!_fs["default"].existsSync(current)) {
|
|
302
302
|
if (i === parts.length - 1 && isFile) {
|
|
303
303
|
// 最後一個而且是檔案 → 建檔案
|
|
@@ -310,7 +310,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
310
310
|
}
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
|
-
return
|
|
313
|
+
return _path5["default"].resolve(targetPath);
|
|
314
314
|
}
|
|
315
315
|
|
|
316
316
|
/**
|
|
@@ -607,7 +607,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
607
607
|
try {
|
|
608
608
|
var files = _fs["default"].readdirSync(_path);
|
|
609
609
|
return files.map(function (file) {
|
|
610
|
-
return _this3.getPathInfo(
|
|
610
|
+
return _this3.getPathInfo(_path5["default"].join(_path, file));
|
|
611
611
|
});
|
|
612
612
|
} catch (error) {
|
|
613
613
|
throw new _index2["default"](8002, error);
|
|
@@ -623,7 +623,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
623
623
|
key: "copySingleFile",
|
|
624
624
|
value: function copySingleFile(from, dest, fileName) {
|
|
625
625
|
var force = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
626
|
-
var destination = fileName && fileName.trim() ?
|
|
626
|
+
var destination = fileName && fileName.trim() ? _path5["default"].join(dest, fileName) : dest;
|
|
627
627
|
if (_fs["default"].existsSync(destination) && !force) {
|
|
628
628
|
throw new _index2["default"](8006, destination);
|
|
629
629
|
}
|
|
@@ -632,7 +632,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
632
632
|
}, {
|
|
633
633
|
key: "ensureFolderExists",
|
|
634
634
|
value: function ensureFolderExists(folderPath) {
|
|
635
|
-
var resolved =
|
|
635
|
+
var resolved = _path5["default"].resolve(folderPath);
|
|
636
636
|
if (_fs["default"].existsSync(resolved)) return;
|
|
637
637
|
_fs["default"].mkdirSync(resolved, {
|
|
638
638
|
recursive: true
|
|
@@ -805,14 +805,14 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
805
805
|
/** 6.要產生webstorm run case? */
|
|
806
806
|
ideaWorkspacePath = "".concat(this.findSpecificFolderByPath(dirPath, ".idea"), "/workspace.xml");
|
|
807
807
|
/** 7.要產生cd script 腳本 **/
|
|
808
|
-
this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT, "cd_".concat(packageName), "cd ".concat(
|
|
808
|
+
this.insertShellCommand(_configerer.configerer.BASE_SHELL_SCRIPT, "cd_".concat(packageName), "cd ".concat(_path5["default"].resolve(dirPath)));
|
|
809
809
|
if (_fs["default"].existsSync(ideaWorkspacePath)) {
|
|
810
810
|
workspace = this.getFileContextInRaw(ideaWorkspacePath);
|
|
811
811
|
splited = workspace.split("\n");
|
|
812
812
|
indexOfRunManager = _lodash["default"].findIndex(splited, function (line) {
|
|
813
813
|
return _this5.has(line, 'name="RunManager');
|
|
814
814
|
});
|
|
815
|
-
this.insertToArray(splited, indexOfRunManager, "<configuration name=\"".concat(packageName, "\" \n type=\"NodeJSConfigurationType\" \n path-to-node=\"$USER_HOME$/.nvm/versions/node/v18.19.1/bin/node\" \n node-parameters=\"--require @babel/register\" \n path-to-js-file=\"").concat(
|
|
815
|
+
this.insertToArray(splited, indexOfRunManager, "<configuration name=\"".concat(packageName, "\" \n type=\"NodeJSConfigurationType\" \n path-to-node=\"$USER_HOME$/.nvm/versions/node/v18.19.1/bin/node\" \n node-parameters=\"--require @babel/register\" \n path-to-js-file=\"").concat(_path5["default"].resolve(dirPath), "/src/index.js\" \n working-dir=\"").concat(_path5["default"].resolve(dirPath), "\" >"), " <envs>", " <env name=\"self_debug\" value=\"true\" />", " <env name=\"is_node\" value=\"true\" />", " </envs>", " <method v=\"2\" />", "</configuration>");
|
|
816
816
|
indexOfList = _lodash["default"].findIndex(splited, function (line) {
|
|
817
817
|
return _lodash["default"].isEqual(_lodash["default"].trim(line), "<list>");
|
|
818
818
|
}, indexOfRunManager);
|
|
@@ -822,7 +822,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
822
822
|
this.appendError("".concat(ideaWorkspacePath, " not exist"));
|
|
823
823
|
}
|
|
824
824
|
_context10.next = 17;
|
|
825
|
-
return this.executeCommandLine("cd ".concat(
|
|
825
|
+
return this.executeCommandLine("cd ".concat(_path5["default"].resolve(dirPath), " && npm install"));
|
|
826
826
|
case 17:
|
|
827
827
|
this.appendInfo("build ".concat(packageName, " succeed!"));
|
|
828
828
|
case 18:
|
|
@@ -878,7 +878,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
878
878
|
var newline = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
879
879
|
var forceDelete = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
880
880
|
try {
|
|
881
|
-
var resolvedPath =
|
|
881
|
+
var resolvedPath = _path5["default"].resolve(filePath); // <<--- 正規化路徑
|
|
882
882
|
if (forceDelete && _fs["default"].existsSync(resolvedPath)) _fs["default"].unlinkSync(resolvedPath);
|
|
883
883
|
if (!_fs["default"].existsSync(resolvedPath)) this.persistByPath(resolvedPath);
|
|
884
884
|
var content = "".concat(newline ? "\n" : "").concat(data);
|
|
@@ -912,7 +912,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
912
912
|
while (1) switch (_context11.prev = _context11.next) {
|
|
913
913
|
case 0:
|
|
914
914
|
ignoreP = _args11.length > 2 && _args11[2] !== undefined ? _args11[2] : false;
|
|
915
|
-
path =
|
|
915
|
+
path = _path5["default"].resolve(path);
|
|
916
916
|
this.appendFile(path, JSON.stringify(object), true, true);
|
|
917
917
|
if (ignoreP) {
|
|
918
918
|
_context11.next = 6;
|
|
@@ -1033,7 +1033,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1033
1033
|
}
|
|
1034
1034
|
|
|
1035
1035
|
// 確保目的路徑存在(遞迴建立)
|
|
1036
|
-
this.ensureFolderExists(
|
|
1036
|
+
this.ensureFolderExists(_path5["default"].dirname(destPath));
|
|
1037
1037
|
|
|
1038
1038
|
// 強制複製
|
|
1039
1039
|
this.copySingleFile(absolute, destPath, undefined, true);
|
|
@@ -1108,7 +1108,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1108
1108
|
_iterator7 = _createForOfIteratorHelper(packagejsons);
|
|
1109
1109
|
_context14.prev = 8;
|
|
1110
1110
|
_loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
|
|
1111
|
-
var path, tempFolderPath, release, pathOfPackageJson, indexFileName, templatePath, _yield$_this7$upgrade, moduleName, version;
|
|
1111
|
+
var path, tempFolderPath, release, _path4, localBabelPath, command, pathOfPackageJson, indexFileName, templatePath, _yield$_this7$upgrade, moduleName, version;
|
|
1112
1112
|
return _regenerator["default"].wrap(function _loop$(_context13) {
|
|
1113
1113
|
while (1) switch (_context13.prev = _context13.next) {
|
|
1114
1114
|
case 0:
|
|
@@ -1118,93 +1118,95 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1118
1118
|
return !_this7.has(path, projectName);
|
|
1119
1119
|
};
|
|
1120
1120
|
})))) {
|
|
1121
|
-
_context13.next =
|
|
1121
|
+
_context13.next = 49;
|
|
1122
1122
|
break;
|
|
1123
1123
|
}
|
|
1124
1124
|
_context13.next = 4;
|
|
1125
|
-
return _this7.generateTempFolderWithCleanSrc(
|
|
1125
|
+
return _this7.generateTempFolderWithCleanSrc(_path4);
|
|
1126
1126
|
case 4:
|
|
1127
1127
|
tempFolderPath = _context13.sent;
|
|
1128
1128
|
/** 產生release資料夾 */
|
|
1129
|
-
release = _this7.persistByPath(
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1129
|
+
release = _this7.persistByPath(_path5["default"].join(_path4, "release")); // 1. 定義您的 functions 目錄路徑
|
|
1130
|
+
_path4 = "/Users/davidtu/cross-achieve/high/idea-inventer/gen/sashanailgel/functions"; // 2. 獲取本地安裝的 Babel CLI 執行檔的絕對路徑
|
|
1131
|
+
localBabelPath = "".concat(_path4, "/node_modules/.bin/babel"); // 3. 構造最終命令:先切換目錄,然後執行絕對路徑的 Babel
|
|
1132
|
+
command = "cd ".concat(_path4, " && ").concat(localBabelPath, " ./temp --out-dir ./release/lib"); // 4. 執行
|
|
1133
|
+
_context13.next = 11;
|
|
1134
|
+
return _this7.executeCommandLine(command);
|
|
1135
|
+
case 11:
|
|
1136
|
+
pathOfPackageJson = _path5["default"].join(_path4, "package.json");
|
|
1137
|
+
_context13.prev = 12;
|
|
1136
1138
|
indexFileName = "sample.npm.module.index.js";
|
|
1137
1139
|
/** 複製公版的index.js */
|
|
1138
1140
|
_this7.copySingleFile("/Users/davidtu/cross-achieve/high/idea-inventer/utiller/template/".concat(indexFileName), release, "index.js", true);
|
|
1139
1141
|
|
|
1140
1142
|
/** template就是樣板的概念 */
|
|
1141
|
-
templatePath =
|
|
1143
|
+
templatePath = _path5["default"].join(_path4, "template");
|
|
1142
1144
|
if (!_this7.isPathExist(templatePath)) {
|
|
1143
|
-
_context13.next =
|
|
1145
|
+
_context13.next = 19;
|
|
1144
1146
|
break;
|
|
1145
1147
|
}
|
|
1146
|
-
_context13.next =
|
|
1147
|
-
return _this7.copyFromFolderToDestFolder(templatePath, _this7.persistByPath(
|
|
1148
|
-
case
|
|
1148
|
+
_context13.next = 19;
|
|
1149
|
+
return _this7.copyFromFolderToDestFolder(templatePath, _this7.persistByPath(_path5["default"].join(release, "template")));
|
|
1150
|
+
case 19:
|
|
1149
1151
|
if (!deployToNPMServer) {
|
|
1150
|
-
_context13.next =
|
|
1152
|
+
_context13.next = 27;
|
|
1151
1153
|
break;
|
|
1152
1154
|
}
|
|
1153
|
-
_context13.next =
|
|
1155
|
+
_context13.next = 22;
|
|
1154
1156
|
return _this7.upgradePackageJsonVersion(pathOfPackageJson);
|
|
1155
|
-
case
|
|
1157
|
+
case 22:
|
|
1156
1158
|
_yield$_this7$upgrade = _context13.sent;
|
|
1157
1159
|
moduleName = _yield$_this7$upgrade.moduleName;
|
|
1158
1160
|
version = _yield$_this7$upgrade.version;
|
|
1159
|
-
_context13.next =
|
|
1161
|
+
_context13.next = 27;
|
|
1160
1162
|
return _this7.updateVersionOfTemplate(moduleName, version);
|
|
1161
|
-
case
|
|
1163
|
+
case 27:
|
|
1162
1164
|
/** 把package.json release放進去 */
|
|
1163
|
-
_this7.copySingleFile(pathOfPackageJson,
|
|
1165
|
+
_this7.copySingleFile(pathOfPackageJson, _path5["default"].join(release, "package.json"), undefined, true);
|
|
1164
1166
|
|
|
1165
1167
|
/** 安裝一個沒有devDependency 的node_module */
|
|
1166
|
-
if (!(forceInstallNodeModule || !_this7.isPathExist(
|
|
1167
|
-
_context13.next =
|
|
1168
|
+
if (!(forceInstallNodeModule || !_this7.isPathExist(_path5["default"].join(release, "node_module")))) {
|
|
1169
|
+
_context13.next = 33;
|
|
1168
1170
|
break;
|
|
1169
1171
|
}
|
|
1170
|
-
_context13.next = 28;
|
|
1171
|
-
return _this7.executeCommandLine("cd ".concat(release, " && yarn install --production"));
|
|
1172
|
-
case 28:
|
|
1173
1172
|
_context13.next = 31;
|
|
1173
|
+
return _this7.executeCommandLine("cd ".concat(release, " && yarn install --production"));
|
|
1174
|
+
case 31:
|
|
1175
|
+
_context13.next = 34;
|
|
1174
1176
|
break;
|
|
1175
|
-
case
|
|
1177
|
+
case 33:
|
|
1176
1178
|
_this7.appendInfo("ignore node-module install behavior");
|
|
1177
|
-
case
|
|
1178
|
-
_this7.appendInfo("build ".concat(
|
|
1179
|
+
case 34:
|
|
1180
|
+
_this7.appendInfo("build ".concat(_path4, " succeed"));
|
|
1179
1181
|
|
|
1180
1182
|
/** 部署到 local server*/
|
|
1181
1183
|
if (!deployToNPMServer) {
|
|
1182
|
-
_context13.next =
|
|
1184
|
+
_context13.next = 38;
|
|
1183
1185
|
break;
|
|
1184
1186
|
}
|
|
1185
|
-
_context13.next =
|
|
1187
|
+
_context13.next = 38;
|
|
1186
1188
|
return _this7.executeCommandLine("cd ".concat(release, " && npm publish"));
|
|
1187
|
-
case
|
|
1188
|
-
_context13.next =
|
|
1189
|
+
case 38:
|
|
1190
|
+
_context13.next = 45;
|
|
1189
1191
|
break;
|
|
1190
|
-
case
|
|
1191
|
-
_context13.prev =
|
|
1192
|
-
_context13.t0 = _context13["catch"](
|
|
1193
|
-
_context13.next =
|
|
1192
|
+
case 40:
|
|
1193
|
+
_context13.prev = 40;
|
|
1194
|
+
_context13.t0 = _context13["catch"](12);
|
|
1195
|
+
_context13.next = 44;
|
|
1194
1196
|
return _this7.deleteSelfByPath(release, true);
|
|
1195
|
-
case
|
|
1197
|
+
case 44:
|
|
1196
1198
|
throw new _index2["default"](9999, "generatePackage \u5831\u932F, ".concat(_context13.t0.message));
|
|
1197
|
-
case 42:
|
|
1198
|
-
_context13.prev = 42;
|
|
1199
|
-
_context13.next = 45;
|
|
1200
|
-
return _this7.deleteSelfByPath(tempFolderPath, true);
|
|
1201
1199
|
case 45:
|
|
1202
|
-
|
|
1203
|
-
|
|
1200
|
+
_context13.prev = 45;
|
|
1201
|
+
_context13.next = 48;
|
|
1202
|
+
return _this7.deleteSelfByPath(tempFolderPath, true);
|
|
1203
|
+
case 48:
|
|
1204
|
+
return _context13.finish(45);
|
|
1205
|
+
case 49:
|
|
1204
1206
|
case "end":
|
|
1205
1207
|
return _context13.stop();
|
|
1206
1208
|
}
|
|
1207
|
-
}, _loop, null, [[
|
|
1209
|
+
}, _loop, null, [[12, 40, 45, 49]]);
|
|
1208
1210
|
});
|
|
1209
1211
|
_iterator7.s();
|
|
1210
1212
|
case 11:
|
|
@@ -1479,7 +1481,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1479
1481
|
case 0:
|
|
1480
1482
|
width = _args19.length > 1 && _args19[1] !== undefined ? _args19[1] : 200;
|
|
1481
1483
|
_context19.next = 3;
|
|
1482
|
-
return this.executeCommandLine("cd ".concat(
|
|
1484
|
+
return this.executeCommandLine("cd ".concat(_path5["default"].resolve("."), " && npx prettier --write ").concat(_path5["default"].resolve(path), " --print-width ").concat(width));
|
|
1483
1485
|
case 3:
|
|
1484
1486
|
case "end":
|
|
1485
1487
|
return _context19.stop();
|
|
@@ -1649,7 +1651,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1649
1651
|
var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;
|
|
1650
1652
|
if (_lodash["default"].isEqual(this.getExtensionFromPath(path), "js")) {
|
|
1651
1653
|
var _source$key;
|
|
1652
|
-
var source = require(
|
|
1654
|
+
var source = require(_path5["default"].resolve(path))["default"];
|
|
1653
1655
|
return (_source$key = source[key]) !== null && _source$key !== void 0 ? _source$key : defaultValue;
|
|
1654
1656
|
} else {
|
|
1655
1657
|
throw new _index2["default"](8020, "path is not js file, which is ".concat(path));
|
|
@@ -1822,8 +1824,8 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1822
1824
|
while (1) switch (_context26.prev = _context26.next) {
|
|
1823
1825
|
case 0:
|
|
1824
1826
|
this.appendInfo("generateTempFolderWithCleanSrc", basePath);
|
|
1825
|
-
sourceFile =
|
|
1826
|
-
tempFolderPath =
|
|
1827
|
+
sourceFile = _path5["default"].join(basePath, "src");
|
|
1828
|
+
tempFolderPath = _path5["default"].join(basePath, "temp");
|
|
1827
1829
|
if (_fs["default"].existsSync(sourceFile)) {
|
|
1828
1830
|
_context26.next = 5;
|
|
1829
1831
|
break;
|
|
@@ -1864,7 +1866,7 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1864
1866
|
|
|
1865
1867
|
// 美化代碼
|
|
1866
1868
|
_context26.next = 25;
|
|
1867
|
-
return this.executeCommandLine("cd ".concat(
|
|
1869
|
+
return this.executeCommandLine("cd ".concat(_path5["default"].dirname(tempFilePath), " && npx prettier --write \"").concat(tempFilePath, "\""));
|
|
1868
1870
|
case 25:
|
|
1869
1871
|
_context26.next = 13;
|
|
1870
1872
|
break;
|
|
@@ -1972,8 +1974,8 @@ var NodeUtiller = /*#__PURE__*/function (_Utiller) {
|
|
|
1972
1974
|
}
|
|
1973
1975
|
var shouldHaveDotSlash = (_args$ = args[0]) === null || _args$ === void 0 ? void 0 : _args$.startsWith("./");
|
|
1974
1976
|
var cleanArgs = (_args$2 = args[0]) !== null && _args$2 !== void 0 && _args$2.startsWith("./") ? [args[0].slice(2)].concat((0, _toConsumableArray2["default"])(args.slice(1))) : args;
|
|
1975
|
-
var joined =
|
|
1976
|
-
return shouldHaveDotSlash && !
|
|
1977
|
+
var joined = _path5["default"].join.apply(_path5["default"], (0, _toConsumableArray2["default"])(cleanArgs));
|
|
1978
|
+
return shouldHaveDotSlash && !_path5["default"].isAbsolute(joined) ? "./".concat(joined) : joined;
|
|
1977
1979
|
}
|
|
1978
1980
|
}]);
|
|
1979
1981
|
}(_index["default"]);
|
package/package.json
CHANGED