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.
@@ -308,20 +308,30 @@ var Utiller = /*#__PURE__*/function () {
308
308
  });
309
309
  /**
310
310
  * 使用 ES10+ 和 Lodash,將短句子轉換為潛在的搜尋關鍵字陣列。
311
- * 策略:1. 清理 2. 窮舉所有可能的 2 字或 3 字詞組 3. 去重和過濾
311
+ * 策略:1. 提取英文單字 2. 提取規格/色號詞組 3. 清理中文 4. 窮舉中文 N-gram 5. 去重和過濾
312
312
  * @param {string} sentence - 原始字串。
313
- * @param {number} [maxLength=50] - 允許的最大字串長度,預設為 30。
314
- * @returns {string[]} - 潛在關鍵字陣列(至少 2 個中文字)。
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
- var textToProcess = sentence;
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(/[a-z0-9]+(w|led|uv|顆|組|片|入|ml|g|oz|號|色|\/|\-|\~|k)/g, " ") // 移除規格和數量 (新增了 k, 修正了 w)
337
- .replace(/[!@#$%^&*()_+={}\[\]:;"'<>,.?\/\\|`~]/g, " ") // 移除特殊符號
338
- .replace(/系列|一組|單色|多款|套組|全套|專用|迷你|頂級|高品質|超閃|奢華|最新|款式|新款|超亮|的|與|和|閃|美甲/g, " ") // 移除通用詞 (新增了 閃, 美甲)
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
- // 步驟 2: 窮舉所有 >= 2 個字的 N-gram 詞組
346
- var keywords = [];
373
+ // --- 步驟 4: 窮舉所有 >= 2 個字的 N-gram 詞組 (針對純中文) ---
347
374
  var minLength = 2;
348
- var maxNgramLength = 3; // N-gram 最大長度
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
- // 步驟 3: 標準化、去重和過濾
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 _path4 = _interopRequireDefault(require("path"));
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(_path4["default"].sep);
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 = _path4["default"].resolve(path);
122
- var parts = absolute.split(_path4["default"].sep);
121
+ var absolute = _path5["default"].resolve(path);
122
+ var parts = absolute.split(_path5["default"].sep);
123
123
  while (parts.length) {
124
- var joined = _path4["default"].join.apply(_path4["default"], (0, _toConsumableArray2["default"])(parts).concat([folderName]));
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 = _path4["default"].join(path, entry.name);
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 = _path4["default"].dirname(path);
230
- var ext = _path4["default"].extname(path);
231
- var newPath = _path4["default"].join(dir, "".concat(newName).concat(ext));
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 = _path4["default"].resolve(path);
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 = _path4["default"].isAbsolute(targetPath);
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 = _path4["default"].extname(lastPart) !== ""; // ← 正規判斷副檔名
296
+ var isFile = _path5["default"].extname(lastPart) !== ""; // ← 正規判斷副檔名
297
297
 
298
- var current = isAbsolute ? _path4["default"].sep : "";
298
+ var current = isAbsolute ? _path5["default"].sep : "";
299
299
  for (var i = 0; i < parts.length; i++) {
300
- current = _path4["default"].join(current, parts[i]);
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 _path4["default"].resolve(targetPath);
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(_path4["default"].join(_path, file));
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() ? _path4["default"].join(dest, fileName) : dest;
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 = _path4["default"].resolve(folderPath);
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(_path4["default"].resolve(dirPath)));
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(_path4["default"].resolve(dirPath), "/src/index.js\" \n working-dir=\"").concat(_path4["default"].resolve(dirPath), "\" >"), " <envs>", " <env name=\"self_debug\" value=\"true\" />", " <env name=\"is_node\" value=\"true\" />", " </envs>", " <method v=\"2\" />", "</configuration>");
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(_path4["default"].resolve(dirPath), " && npm install"));
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 = _path4["default"].resolve(filePath); // <<--- 正規化路徑
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 = _path4["default"].resolve(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(_path4["default"].dirname(destPath));
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 = 46;
1121
+ _context13.next = 49;
1122
1122
  break;
1123
1123
  }
1124
1124
  _context13.next = 4;
1125
- return _this7.generateTempFolderWithCleanSrc(path);
1125
+ return _this7.generateTempFolderWithCleanSrc(_path4);
1126
1126
  case 4:
1127
1127
  tempFolderPath = _context13.sent;
1128
1128
  /** 產生release資料夾 */
1129
- release = _this7.persistByPath(_path4["default"].join(path, "release"));
1130
- /** 利用babel 產生出 es5相容性高的src file */
1131
- _context13.next = 8;
1132
- return _this7.executeCommandLine("cd ".concat(path, " && npx babel ./temp --out-dir ./release/lib"));
1133
- case 8:
1134
- pathOfPackageJson = _path4["default"].join(path, "package.json");
1135
- _context13.prev = 9;
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 = _path4["default"].join(path, "template");
1143
+ templatePath = _path5["default"].join(_path4, "template");
1142
1144
  if (!_this7.isPathExist(templatePath)) {
1143
- _context13.next = 16;
1145
+ _context13.next = 19;
1144
1146
  break;
1145
1147
  }
1146
- _context13.next = 16;
1147
- return _this7.copyFromFolderToDestFolder(templatePath, _this7.persistByPath(_path4["default"].join(release, "template")));
1148
- case 16:
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 = 24;
1152
+ _context13.next = 27;
1151
1153
  break;
1152
1154
  }
1153
- _context13.next = 19;
1155
+ _context13.next = 22;
1154
1156
  return _this7.upgradePackageJsonVersion(pathOfPackageJson);
1155
- case 19:
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 = 24;
1161
+ _context13.next = 27;
1160
1162
  return _this7.updateVersionOfTemplate(moduleName, version);
1161
- case 24:
1163
+ case 27:
1162
1164
  /** 把package.json release放進去 */
1163
- _this7.copySingleFile(pathOfPackageJson, _path4["default"].join(release, "package.json"), undefined, true);
1165
+ _this7.copySingleFile(pathOfPackageJson, _path5["default"].join(release, "package.json"), undefined, true);
1164
1166
 
1165
1167
  /** 安裝一個沒有devDependency 的node_module */
1166
- if (!(forceInstallNodeModule || !_this7.isPathExist(_path4["default"].join(release, "node_module")))) {
1167
- _context13.next = 30;
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 30:
1177
+ case 33:
1176
1178
  _this7.appendInfo("ignore node-module install behavior");
1177
- case 31:
1178
- _this7.appendInfo("build ".concat(path, " succeed"));
1179
+ case 34:
1180
+ _this7.appendInfo("build ".concat(_path4, " succeed"));
1179
1181
 
1180
1182
  /** 部署到 local server*/
1181
1183
  if (!deployToNPMServer) {
1182
- _context13.next = 35;
1184
+ _context13.next = 38;
1183
1185
  break;
1184
1186
  }
1185
- _context13.next = 35;
1187
+ _context13.next = 38;
1186
1188
  return _this7.executeCommandLine("cd ".concat(release, " && npm publish"));
1187
- case 35:
1188
- _context13.next = 42;
1189
+ case 38:
1190
+ _context13.next = 45;
1189
1191
  break;
1190
- case 37:
1191
- _context13.prev = 37;
1192
- _context13.t0 = _context13["catch"](9);
1193
- _context13.next = 41;
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 41:
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
- return _context13.finish(42);
1203
- case 46:
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, [[9, 37, 42, 46]]);
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(_path4["default"].resolve("."), " && npx prettier --write ").concat(_path4["default"].resolve(path), " --print-width ").concat(width));
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(_path4["default"].resolve(path))["default"];
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 = _path4["default"].join(basePath, "src");
1826
- tempFolderPath = _path4["default"].join(basePath, "temp");
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(_path4["default"].dirname(tempFilePath), " && npx prettier --write \"").concat(tempFilePath, "\""));
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 = _path4["default"].join.apply(_path4["default"], (0, _toConsumableArray2["default"])(cleanArgs));
1976
- return shouldHaveDotSlash && !_path4["default"].isAbsolute(joined) ? "./".concat(joined) : joined;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utiller",
3
- "version": "1.0.382",
3
+ "version": "1.0.384",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -11,7 +11,7 @@
11
11
  "license": "ISC",
12
12
  "dependencies": {
13
13
  "configerer": "^1.0.23",
14
- "utiller": "^1.0.381",
14
+ "utiller": "^1.0.383",
15
15
  "linepayer": "^1.0.15",
16
16
  "databazer": "^1.0.17",
17
17
  "lodash": "^4.17.20",