smart-port-allocation
npx skills add https://github.com/lionad-morotar/port-key --skill smart-port-allocation
Agent 安装分布
Skill 文档
æºè½ç«¯å£åé 婿
ä»»å¡ç®æ
- æ¬ Skill ç¨äºï¼æ ¹æ®é¡¹ç®åç§°èªå¨çæå¯è®°å¿ä¸ä¸æå²çªç端å£å·
- è½åå å«ï¼é®çæ å°ç®æ³ã端å£åæ³æ§éªè¯ãåéç«¯å£æºè½éæ©ãå¤ç«¯å£çç¥æ¯æ
- è§¦åæ¡ä»¶ï¼å¯å¨æ¬å°å¤ä¸ªæå¡ãé 置项ç®åå端端å£ãå¾®æå¡æ¶æç«¯å£åé
åç½®åå¤
- æ éå®è£ é¢å¤ä¾èµï¼ä½¿ç¨ npx ç´æ¥è°ç¨ port-key å·¥å ·
- ç¡®ä¿ç³»ç»å·²å®è£ Node.js å npmï¼port-key éè¿ npx èªå¨ä¸è½½åæ§è¡ï¼
æä½æ¥éª¤
-
æ åæµç¨ï¼
-
å¤ç项ç®åç§°
- çåç§°è§åï¼å¦æé¡¹ç®åç§°è¾çï¼1-2 个åè¯æ 1-8 ä¸ªåæ¯ï¼ï¼ç´æ¥ä½¿ç¨å®æ´åç§°
- 示ä¾ï¼
"dashboard"â"dashboard" - 示ä¾ï¼
"myapp"â"myapp"
- 示ä¾ï¼
- é¿åç§°è§åï¼å¦æé¡¹ç®åç§°è¾é¿ï¼å¤ä¸ªåè¯æè¶
è¿ 8 ä¸ªåæ¯ï¼ï¼æåæ¯ä¸ªåè¯çé¦åæ¯
- 示ä¾ï¼
"æç±æå®¶"â"wawj" - 示ä¾ï¼
"user authentication service"â"uas" - 示ä¾ï¼
"ecommerce payment gateway"â"epg" - 示ä¾ï¼
"enterprise resource planning system"â"erps"
- 示ä¾ï¼
- æ··åè¯è¨æ¯æï¼èªå¨è¯å«ä¸è±æï¼æåæ¼é³æè±æåæ¯çé¦åæ¯
- çåç§°è§åï¼å¦æé¡¹ç®åç§°è¾çï¼1-2 个åè¯æ 1-8 ä¸ªåæ¯ï¼ï¼ç´æ¥ä½¿ç¨å®æ´åç§°
-
çæå个项ç®ç«¯å£
- ä½¿ç¨ npx è°ç¨ port-key å·¥å ·
- 示ä¾ï¼
npx -y @lionad/port-key "myproject"â é»è®¤é ç½®ä¸è¾åº7604 - æºè½ä½å°è§£æè¿åç»æï¼åç¨æ·è¯´æç«¯å£å·åå ¶å«ä¹
-
å¤çå¤ç»ä»¶åºæ¯
- 对äºéè¦å¤ä¸ªç«¯å£ç项ç®ï¼å端ãåç«¯ãæ°æ®åºçï¼ï¼ä½¿ç¨ä»¥ä¸ä¸¤ç§çç¥ä¹ä¸ï¼
- è§è²åç¼æ³ï¼å°è§è²æ¾å°åç§°å¼å¤´ï¼ç¡®ä¿è§è²åä¸åç¼æ å°ï¼æ´å®¹æäº§çä¸å端å£ï¼
- å端ï¼
fe-<project> - å端ï¼
api-<project> - æ°æ®åºï¼
db-<project>
- å端ï¼
- 顺åºåé
æ³ï¼ä½¿ç¨åºç¡ç«¯å£ï¼ç¶åè¿ç»åé
- Web æå¡ï¼åºç¡ç«¯å£
- å端 APIï¼åºç¡ç«¯å£ + 1
- æ°æ®åºï¼åºç¡ç«¯å£ + 2
- è§è²åç¼æ³ï¼å°è§è²æ¾å°åç§°å¼å¤´ï¼ç¡®ä¿è§è²åä¸åç¼æ å°ï¼æ´å®¹æäº§çä¸å端å£ï¼
- 对äºéè¦å¤ä¸ªç«¯å£ç项ç®ï¼å端ãåç«¯ãæ°æ®åºçï¼ï¼ä½¿ç¨ä»¥ä¸ä¸¤ç§çç¥ä¹ä¸ï¼
-
端å£å²çªå¤ç
- æ£æ¥çæçç«¯å£æ¯å¦ä¸æ¬å°è¿è¡æå¡å²çª
- 妿å²çªï¼å°å²çªç«¯å£å å
¥
~/.port-key/config.jsonçblockedPortsåéè¯ï¼æä¸´æ¶è®¾ç½®PORTKEY_HOMEæåä¸ä¸ªç¬ç«ç®å½ï¼
-
-
å¯é忝ï¼
- å½é¡¹ç®åç§°å¾çï¼1-3 忝ï¼ï¼å·¥å ·èªå¨å¯ç¨é¶å¡«å çç¥çææå®ä½æ°ç«¯å£
- å½é¡¹ç®åç§°å¾é¿ï¼å¤ä¸ªåè¯ï¼ï¼èªå¨æåé¦åæ¯ï¼å¦ “æç±æå®¶” â “wawj”ï¼
- å½éè¦ç¹å®ç«¯å£èå´ï¼éè¿
~/.port-key/config.jsoné ç½®minPortãmaxPort - å½éè¦å±è½æäºç«¯å£ï¼éè¿
~/.port-key/config.jsoné ç½®blockedPorts
èµæºç´¢å¼
- é¢ååèï¼è§ references/port-key.mdï¼ä½æ¶è¯»åï¼éè¦äºè§£ port-key å·¥å ·ç详ç»åæ°ãä½¿ç¨æ¹æ³æè¾åºæ ¼å¼æ¶ï¼
- é¢ååèï¼è§ references/port-best-practices.mdï¼ä½æ¶è¯»åï¼éè¦ç«¯å£åé çç¥å»ºè®®æé¿å å²çªçæä½³å®è·µæ¶ï¼
注æäºé¡¹
- 端å£èå´å¿ é¡»å¨ 1024-65535 ä¹é´ï¼ç³»ç»ç«¯å£ 0-1023 被å±è½ï¼
- çæç端å£å·ä» ä½ä¸ºå»ºè®®ï¼å®é 使ç¨å请éªè¯ç«¯å£æ¯å¦å¯ç¨
- 端å£åé çç¥åºä¿æå¢éå é¨ä¸è´ï¼ä¾¿äºè®°å¿å管ç
- å¤é¡¹ç®å¼åæ¶å»ºè®®è®°å½ç«¯å£åé æ åµï¼é¿å éå¤
- 使ç¨
npx -yå¯èªå¨ç¡®è®¤ä¸è½½ï¼é¿å 交äºå¼æç¤º - é¿é¡¹ç®åç§°å¤çï¼æºè½ä½ä¼èªå¨æåé¦åæ¯ï¼ä¹å¯æå¨æå®ç®çåç§°ï¼å¦å° “ç¨æ·è®¤è¯æå¡” æå®ä¸º “uas”ï¼
- é¦åæ¯è§åï¼è±æåè¯åé¦åæ¯ï¼ä¸æåæ¼é³é¦åæ¯ï¼ä¿æå¯è¯»æ§åè®°å¿æ§
使ç¨ç¤ºä¾
ç¤ºä¾ 1ï¼å个项ç®ç«¯å£åé ï¼çåç§°ï¼
åºæ¯ï¼å¯å¨ä¸ä¸ªå为 “dashboard” çæ°é¡¹ç® æ§è¡æ¹å¼ï¼ä½¿ç¨ npx è°ç¨å·¥å ·
npx -y @lionad/port-key "dashboard"
è¾åºç¤ºä¾ï¼
3126
æºè½ä½è¯´æï¼é»è®¤é ç½®ä¸ï¼é¡¹ç®åç§° “dashboard” éè¿é®çæ å°çæç«¯å£å· 3126ãå·¥å ·åªå端å£èå´ä¸å±è½åè¡¨æ ¡éªï¼ä¸æ£æµç«¯å£æ¯å¦è¢«å ç¨ã
ç¤ºä¾ 1.1ï¼å个项ç®ç«¯å£åé ï¼é¿åç§° – èªå¨æåé¦åæ¯ï¼
åºæ¯ï¼å¯å¨ä¸ä¸ªå为 “ç¨æ·è®¤è¯æå¡” çæ°é¡¹ç® æºè½ä½å¤çï¼èªå¨æåé¦åæ¯ “uas”ï¼User Authentication Serviceï¼ æ§è¡æ¹å¼ï¼
npx -y @lionad/port-key "uas"
è¾åºç¤ºä¾ï¼
7120
æºè½ä½è¯´æï¼é¡¹ç®åç§° “ç¨æ·è®¤è¯æå¡” è¾é¿ï¼å·²æåé¦åæ¯ “uas” çæç«¯å£å· 7120ï¼çè¾å ¥é»è®¤ä¼å°¾é¨è¡¥ 0 å° 4 ä½ï¼ã
ç¤ºä¾ 2ï¼å¤ç»ä»¶é¡¹ç®ç«¯å£åé
åºæ¯ï¼å ¨æ 项ç®éè¦å端ãåç«¯ãæ°æ®åºä¸ä¸ªç«¯å£ æ§è¡æ¹å¼ï¼ä½¿ç¨è§è²åç¼çç¥ï¼é»è®¤é ç½®ä¸æ´å®¹æçæä¸å端å£ï¼
# 1. çæåºç¡ç«¯å£
npx -y @lionad/port-key "myapp"
# é»è®¤è¾åºï¼7610
# 2. å端ï¼è§è²åç¼
npx -y @lionad/port-key "fe-myapp"
# 示ä¾è¾åºï¼4376
# 3. å端ï¼è§è²åç¼
npx -y @lionad/port-key "api-myapp"
# 示ä¾è¾åºï¼1087
# 4. æ°æ®åºï¼è§è²åç¼
npx -y @lionad/port-key "db-myapp"
# 示ä¾è¾åºï¼3576
ç¤ºä¾ 3ï¼é¿å 端å£å²çª
åºæ¯ï¼å·²ç¥ç«¯å£ 3000ã3001 已被å ç¨ æ§è¡æ¹å¼ï¼å°å ç¨ç«¯å£å å ¥é ç½®æä»¶çå±è½å表ï¼ç¶åéæ°çæ
# ~/.port-key/config.jsonï¼ç¤ºä¾ï¼
# { "blockedPorts": [3000, 3001, 8080] }
npx -y @lionad/port-key "blog"
æºè½ä½è¯´æï¼å·¥å ·ä¸ä¼æ£æµç«¯å£æ¯å¦è¢«å ç¨ï¼âå·²å ç¨âéè¦ç±æºè½ä½ç¨ç³»ç»å½ä»¤æ£æ¥ï¼å¹¶æå²çªç«¯å£å å ¥ blockedPorts ååçæã
ç¤ºä¾ 4ï¼æå®ä½æ°åè¯è¨
åºæ¯ï¼éè¦ 5 ä½ç«¯å£å·ï¼ä¸å¸ææ¾ç¤ºè±æè¾åº
æ§è¡æ¹å¼ï¼ä½¿ç¨ --digits å --lang åæ°
npx -y @lionad/port-key "myproject" --digits 5 --lang en
ç¤ºä¾ 5ï¼é¿é¡¹ç®åç§°å¤çï¼ä¸æï¼
åºæ¯ï¼å¤ç䏿项ç®åç§° “æç±æå®¶” æºè½ä½å¤çï¼èªå¨æåæ¼é³é¦åæ¯ “wawj” æ§è¡æ¹å¼ï¼
npx -y @lionad/port-key "wawj"
è¾åºç¤ºä¾ï¼
2127
æºè½ä½è¯´æï¼é»è®¤é ç½®ä¸ï¼é¡¹ç®åç§° “æç±æå®¶”ï¼WÇ Ãi WÇ JiÄï¼å·²æåé¦åæ¯ “wawj”ï¼çæç«¯å£å· 2127ã
ç¤ºä¾ 6ï¼é¿é¡¹ç®åç§°å¤çï¼è±æï¼
åºæ¯ï¼å¤çè±æé¿é¡¹ç®åç§° “Enterprise Resource Planning System” æºè½ä½å¤çï¼èªå¨æåé¦åæ¯ “erps” æ§è¡æ¹å¼ï¼
npx -y @lionad/port-key "erps"
è¾åºç¤ºä¾ï¼
3402
æºè½ä½è¯´æï¼é»è®¤é ç½®ä¸ï¼é¡¹ç®åç§° “Enterprise Resource Planning System” å·²æåé¦åæ¯ “erps”ï¼çæç«¯å£å· 3402ã