jja 1.0.3 → 2.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.
- package/README.md +3 -3
- package/bin.js +4 -0
- package/mjs/index.mjs +1 -1
- package/mjs/src/clearScreen.mjs +1 -1
- package/mjs/src/command.mjs +1 -1
- package/mjs/src/git/beforeTagCommit.mjs +1 -0
- package/mjs/src/git/gitCommit.mjs +1 -0
- package/mjs/src/git/gitMerge.mjs +1 -0
- package/mjs/src/git/index.mjs +1 -0
- package/mjs/src/git/tagCommit.mjs +1 -0
- package/mjs/src/git/wheel.mjs +1 -0
- package/mjs/src/greenPen.mjs +1 -0
- package/mjs/src/package/cursorMoveUp.mjs +1 -0
- package/mjs/src/package/diffPackage.mjs +1 -0
- package/mjs/src/package/index.mjs +1 -0
- package/mjs/src/package/updateDependence.mjs +1 -0
- package/mjs/src/package/wheel.mjs +1 -0
- package/mjs/src/remove/beforeRemove.mjs +1 -0
- package/mjs/src/remove/index.mjs +1 -0
- package/mjs/src/remove/removeData.mjs +1 -0
- package/mjs/src/remove/removeFileOrDirectory.mjs +1 -0
- package/mjs/src/remove/removeResult.mjs +1 -0
- package/mjs/src/remove/wheelRun.mjs +1 -0
- package/mjs/src/update/data.mjs +1 -0
- package/mjs/src/update/index.mjs +1 -0
- package/mjs/src/update/print.mjs +1 -0
- package/mjs/src/update/updateNpm.mjs +1 -0
- package/mjs/src/update/versionMange.mjs +1 -0
- package/mjs/src/update/wheel.mjs +1 -0
- package/package.json +13 -13
- package/bin/index.js +0 -3
- package/mjs/src/git.mjs +0 -1
- package/mjs/src/package.mjs +0 -1
- package/mjs/src/remove.mjs +0 -1
- package/mjs/src/todo/runOther.mjs +0 -1
- package/mjs/src/update.mjs +0 -1
package/README.md
CHANGED
|
@@ -8,13 +8,13 @@
|
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
11
|
-
## 安装
|
|
11
|
+
## 📦 安装
|
|
12
12
|
|
|
13
13
|
```sh
|
|
14
14
|
npm install --save-dev jja
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
## 命令
|
|
17
|
+
## 📖 命令
|
|
18
18
|
|
|
19
19
|
定义了两个命令,一个是 remove ,另一个是 update
|
|
20
20
|
|
|
@@ -40,6 +40,6 @@ npx jja up
|
|
|
40
40
|
|
|
41
41
|
升级前尽量保证你的功能完善,且 git 目录干净
|
|
42
42
|
|
|
43
|
-
## 文档地址
|
|
43
|
+
## 📄 文档地址
|
|
44
44
|
|
|
45
45
|
参看 [https://earthnut.dev/jja/](https://earthnut.dev/jja/)
|
package/bin.js
ADDED
package/mjs/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{command as r}from"./src/command.mjs";import{remove as a}from"./src/remove/index.mjs";import i from"./src/update/index.mjs";import{packageManage as e}from"./src/package/index.mjs";import{clearScreen as m}from"./src/clearScreen.mjs";import t from"./src/git/index.mjs";import{isUndefined as o}from"a-type-of-js";const n=r.args.$arrMap;!async function r(){if(0==n.length)return;const c=n.shift();o(c)||("remove"in c?await a(c.remove):"clearScreen"in c||"clear"in c?m():"git"in c?await t(c.git):"package"in c?await e(c.package):"update"in c&&await i(c.update),await r())}();
|
package/mjs/src/clearScreen.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isTTY as
|
|
1
|
+
import{isTTY as o,_p as e}from"a-node-tools";import r from"node:readline";function s(){if(o()){const o="\n".repeat(process.stdout.rows);console.log(o),r.cursorTo(process.stdout,0,0),r.clearScreenDown(process.stdout)}else e("当前环境不支持 ")}export{s as clearScreen};
|
package/mjs/src/command.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Command as
|
|
1
|
+
import{Command as e}from"a-command";import r from"color-pen";const i=new e("jja");i.bind({"package <pkg> (包管理)":["--diff <-d> (分析当下包的差异,该功能很鸡肋,因为线上更新比较慢)","--upDependencies <-u> (更新依赖,强制更新到 'latest',使用需谨慎)"],"remove <rm> (做一个简单的兼容的移除文件或文件夹的命令)":["--ignore <-i> (不打印日志(默认打印的))","--subdirectories <-s> (这是一个危险的命令,用于 windows 下递归删除执行命令下所有的给定文件名称)"],"update <up> (做一个简单的 npm 升级程序,对,简单的)":["--ignore <-i> (不建议你这么用,你会发现你像个傻子一样在那等结果)",`--dependencies <-d> (更新依赖,跟 ${r.random("npm update")} 一样)`],"clearScreen <cls> (清理终端显示屏幕,同 clearTerminal )":"","clearTerminal <clear> (清理终端显示屏幕,同 clearScreen )":"","git (一些关于 git 的操作)":[`commit (git 提交代码,是 ${r.red("commit")} 提交啊,不是 ${r.hex("#666")("push")} 推送)`,"merge (合并两个分支)","tag (给提交打上 tag)"]}).run().isEnd(!0);export{i as command};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as t}from"../command.mjs";import{tagCommit as m}from"./tagCommit.mjs";async function o(){await m(await t.question({text:"请输入待标记的信息",private:!0}))}export{o as beforeTagCommit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as o}from"../command.mjs";import{getDirectoryBy as t,_p as r,runOtherCode as e}from"a-node-tools";import i from"color-pen";import{tagCommit as c}from"./tagCommit.mjs";async function n(n="版本维护",s=!1){const a=t(".git","directory");if(null==a)return r(i.hex("#ff0")("not a git repository(当前目录非 git 储存库)"));const m=await e({code:"git add .",cwd:a});if(!m.success)return null!=console.log(m.error);const l=await e({code:"git status",cwd:a});if(!/nothing to commit, working tree clean/.test(l.data||"")){const t=await e({code:"git add .",cwd:a});if(!t.success)return null!=console.log(t.error);""==n.trim()&&(n=await o.question({text:"请输入提交信息",private:!0}));const r=await e({code:`git commit -m "${n}"`,cwd:a});return r.success?(r.error&&console.log(r.error),await e({code:"git push",cwd:a}),s&&await c(n),!0):null!=console.log(r.error)}return!1}export{n as gitCommit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{runOtherCode as a}from"a-node-tools";import{command as t}from"../command.mjs";async function o(o){if(""==o){const i=await a("git branch -a");console.log(i.data),o=await t.question({text:"请输入要合并分支的名称",private:!0})}const i=await t.selection({data:["正常快进合并","非快进合并 (--no-ff)","多提交记录合并为一条 (--squash)"],private:!0},"number");await a(`git merge ${o} ${["","--no-ff","--squash"][i]}`)}export{o as gitMerge};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as o}from"../command.mjs";import{isPlainObject as t,isUndefined as e}from"a-type-of-js";import{wheel as n}from"./wheel.mjs";async function i(i){if(t(i)&&(i={value:[]}),e(i.options)||0===i.options.length)return o.help("git");const m=i.options;for(let o=0,t=m.length;o<t;o++)await n(m[o])}export{i as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getDirectoryBy as o,readFileToJsonSync as t,pathJoin as a,runOtherCode as n}from"a-node-tools";async function c(c){const i=o("package.json","file",process.cwd());if(null==i)return!0;const e=t(a(i,"package.json")).version;if(!e)return!0;await n({code:`git tag -a v${e} -m '${c}'`,cwd:i}),await n({code:"git push origin --tag",cwd:i})}export{c as tagCommit};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as m}from"../command.mjs";import{beforeTagCommit as o}from"./beforeTagCommit.mjs";import{gitCommit as i}from"./gitCommit.mjs";import{gitMerge as t}from"./gitMerge.mjs";async function r(r){r.commit?await i(r.commit.join(" ")):r.merge?await t(r.merge.join("")):r.tag?await o():m.help("git")}export{r as wheel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"color-pen";const r=o.green;export{r as greenPen};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{cursorMoveUp as o,cursorAfterClear as r,_p as t}from"a-node-tools";function e(e){o(),r(),t(e)}export{e as cursorMoveUp};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getDirectoryBy as e,readFileToJsonSync as o,pathJoin as r,_p as t,getNpmPkgInfo as n}from"a-node-tools";import{isUndefined as i,isNull as a}from"a-type-of-js";import s from"color-pen";import{command as f}from"../command.mjs";async function m(m=!1){const c=e("package.json","file");if(i(c))return[];const p=o(r(c,"package.json"))||{},u=p.name,l=p.version;if(!l)return t(s.hex("#25f9aa")(`未检测到当前包 ${u} 的版本号`)),[];const g=await n(u);if(a(g))return f.error();if(0==Object.keys(g).length)return[l];if(g.name!==u)return[l];if(m){const e=s.hex("#931")(`当前包本地版本为: ${l}`);t(e);let o=`${" ".repeat(6)}线上版本为:${g.version}`;o+=g.version==l?"":s.hex("#668")("(线上更新有延迟)"),t(s.hex("#399")(o));const r=new Date(g.time.modified).toLocaleString();t(r.toString())}return[l,g.version]}export{m as diffPackage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as o}from"../command.mjs";import{isUndefined as t}from"a-type-of-js";import{wheel as n}from"./wheel.mjs";async function e(e){if(t(e.options)||0==e.options.length)return o.help("package");const m=e.options;for(let o=0,t=m.length;o<t;o++)await n(m[o])}export{e as packageManage};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getDirectoryBy as e,_p as n,readFileToJsonSync as o,pathJoin as t,runOtherCode as a}from"a-node-tools";import s from"color-pen";import{cursorMoveUp as r}from"./cursorMoveUp.mjs";async function c(c=!0){const p=e("package.json","file");if(null==p)return n("当前目录下不存在 package.json 文件");const l=o(t(p,"package.json")).dependencies||{};if(c&&n(s.green("初始化完成,等待下一步命令")),Object.keys(l).length>0){let e="npm install --save";for(let n=Object.keys(l),o=n.length,t=0;t<o;t++){e+=` ${n[t]}@latest `}await a(e)}c&&n(s.cyan("正在更新 dev 依赖")),await a("npm update --save"),c&&r("开发依赖更新完毕")}export{c as updateDependence};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as e}from"../command.mjs";import{diffPackage as a}from"./diffPackage.mjs";import{updateDependence as m}from"./updateDependence.mjs";async function p(p){p["--upDependencies"]?await m(!0):p["--diff"]?await a(!0):e.help("package")}export{p as wheel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import o from"color-pen";import{removeData as r}from"./removeData.mjs";import{_p as m,fileExist as e}from"a-node-tools";import{wheelRun as t}from"./wheelRun.mjs";import{removeFileOrDirectory as i}from"./removeFileOrDirectory.mjs";async function l(l){r.log||m(o.hex("#336")(`当前清理文件为 ${l}`));const n=e(l);r.log||m(o.hex("#666")(`正在检测 ${l} 文件/夹是否存在`)),n?await t(i,[l,n]):r.log||m(o.yellow(`${l} 文件不存在`))}export{l as beforeRemove};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pen as o}from"color-pen";import{_p as r,isWindows as t}from"a-node-tools";import{removeData as n}from"./removeData.mjs";import{beforeRemove as e}from"./beforeRemove.mjs";async function c(c){const i=c.value||[],a=c.options;for(a?.forEach((o=>{const r=o["--ignore"];r&&(n.log=!0,i.concat(r));const t=o["--subdirectories"];t&&(n.subdirectories=!0,i.concat(t))})),n.log||r(o.brightCyan("当前系统为: ".concat(t?"windows":"linux/mac"))),0==i.length&&r(o.random("没有待清理的文件/文件夹"));i.length;)await e(i.pop())}export{c as remove};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o={log:!1,subdirectories:!1};export{o as removeData};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{removeData as e}from"./removeData.mjs";import r from"color-pen";import{_p as o,isWindows as s,runOtherCode as c}from"a-node-tools";import{removeResult as a}from"./removeResult.mjs";async function t(t,i){e.log||o(r.hex("#aaa")(` ${t} 文件/夹存在,准备删除`));let l={error:null};return s?i.isDirectory()?(l=await c(`rd /q /s ${t.replace(/\//,"\\")}`),a(t,l.success)):i.isFile()&&(l=await c({code:`del ${e.subdirectories?"/s":""} /q ${t.replace(/\//,"\\")}`}),a(t,l.success)):(l=await c({code:`rm -rf ${t.replace(/\\/,"/")}`}),a(t,l.success)),!!l.success||void 0!==console.log(l.error)}export{t as removeFileOrDirectory};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_p as o}from"a-node-tools";function t(t,n){o(`清理 ${t} 文件${n?"完成":"失败"}`)}export{t as removeResult};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_p as o}from"a-node-tools";import t from"color-pen";async function a(e,r,i=5){return!await Reflect.apply(e,void 0,r)&&i--?(o(t.green("执行失败,现在重试中")),await a(e,r,i)):await Reflect.apply(e,void 0,r)}export{a as wheelRun};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const o={npmUpdate:!1,log:!0};export{o as data};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as o}from"../command.mjs";import{isUndefined as t}from"a-type-of-js";import{wheel as m}from"./wheel.mjs";import{data as e}from"./data.mjs";async function r(r){if(t(r.options)||0==r.options.length)return o.help("update");const n=r.options;e.log=!n.some((o=>o["--ignore"]));for(let o=0,t=n.length;o<t;o++)await m(n[o])}export{r as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_p as o}from"a-node-tools";import{data as r}from"./data.mjs";function t(t){return r.log&&o(t),!0}export{t as print};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pen as o}from"color-pen";import{print as r}from"./print.mjs";import{command as t}from"../command.mjs";import{data as m}from"./data.mjs";import{greenPen as i}from"../greenPen.mjs";import{runOtherCode as e}from"a-node-tools";import{versionMange as a}from"./versionMange.mjs";import{updateDependence as p}from"../package/updateDependence.mjs";async function n(){r(o.hex("#9ff")("开始初始化"));"更新"==await t.question({text:"是否需要更新依赖?",tip:["跳过","更新"],private:!0})&&await p(m.log),r(i("依赖更新完毕")),r(o.hex("#666")("请等待更新包(你的 package.json 的 scripts 最好有 build 命令)"));return(await e("npm run build")).success?(r(i("打包测试完成")),await a()?(r(i("版本整理完毕,准备上到 npm")),void("提交"===await t.question({text:"是否需要提交代码?",tip:["跳过","提交"]})?(await e("npm publish"),r(i("上推 npm 包完毕"))):r(i(" 🚀 执行 🚀 🥣 🥱")))):t.error):t.error}export{n as updateNpm};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{command as r}from"../command.mjs";import{getDirectoryBy as e,_p as o,runOtherCode as n}from"a-node-tools";import t from"color-pen";import{print as a}from"./print.mjs";import{greenPen as m}from"../greenPen.mjs";import{diffPackage as i}from"../package/diffPackage.mjs";async function l(){if(null==e("package.json","file"))return o("当前工作目录下或父级不存在 package.json");const l=await i();if(l.length<2)return 1==l.length;l[0]!=l[1]&&(o(`当前版本为:${t.cyan(l[0])}\n线上版本为: ${t.brightRed(l[1])}`),o(t.random("🔥 两个版本号 💡 不一致,请注意 ⚠️"))),a("请选择本次更新版本的类型");const p=l[0];let s,c=0,$=0,u=0;l[0].includes("-")?[c,s]=p.split("-"):c=p,[c,$,u]=c.split("."),c=Number(c),$=Number($),u=Number(u);const f=await r.selection({data:[`bug (patch) ☞ ${c}.${$}.${null==s?u+1:u}`,`新内容 (minor) ☞ ${c}.${$+1}.0`,`大换代 (major) ☞ ${c+1}.0.0`,`测试版本 (prepatch) ☞ ${c}.${$}.${u+1}-0`,`内测版本 (preminor) ☞ ${c}.${$+1}.0-0`,`公测版本 (premajor) ☞ ${c+1}.0.0-0`,`测试迭代 (prerelease) ☞ ${c}.${$}.${null==s?u+1:u}-${null==s?0:Number(s)+1}`],resultText:"您选择了"});a(m("请等待整理版本内容"));const g=`npm version ${f.replace(/.*\((.*)\).*/,"$1")} --no-git-tag-version --force --allow-same-version`;return await n({code:g,printLog:!1}),!0}export{l as versionMange};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{updateDependence as e}from"../package/updateDependence.mjs";import{data as p}from"./data.mjs";import{updateNpm as a}from"./updateNpm.mjs";async function t(t){const m=t["--npm-publish"],n=Boolean(t["--dependencies"]);if(m)return p.npmUpdate=!0,await a();n&&await e(p.log)}export{t as wheel};
|
package/package.json
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jja",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
5
|
+
"description": "一些在终端的执行动作 🥜",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"a-command": ">=2.0.1 <3.0.0",
|
|
9
|
+
"a-js-tools": ">=0.1.4 <1.0.0",
|
|
10
|
+
"a-node-tools": ">=1.1.0 <2.0.0",
|
|
11
|
+
"a-type-of-js": ">=0.2.0 <1.0.0",
|
|
12
|
+
"color-pen": ">=0.1.3 <1.0.0"
|
|
13
|
+
},
|
|
5
14
|
"author": {
|
|
6
|
-
"name": "
|
|
15
|
+
"name": "🥜",
|
|
7
16
|
"email": "earthnut.dev@outlook.com",
|
|
8
17
|
"url": "https://earthnut.dev"
|
|
9
18
|
},
|
|
10
|
-
"description": "一些在终端的执行动作",
|
|
11
19
|
"files": [
|
|
12
|
-
"bin",
|
|
20
|
+
"bin.js",
|
|
13
21
|
"mjs"
|
|
14
22
|
],
|
|
15
23
|
"keywords": [
|
|
16
24
|
"ixxx",
|
|
17
25
|
"jja"
|
|
18
26
|
],
|
|
19
|
-
"license": "ISC",
|
|
20
27
|
"repository": {
|
|
21
28
|
"type": "git",
|
|
22
29
|
"url": "git+https://github.com/earthnutDev/jja.git"
|
|
@@ -30,14 +37,7 @@
|
|
|
30
37
|
"access": "public",
|
|
31
38
|
"registry": "https://registry.npmjs.org/"
|
|
32
39
|
},
|
|
33
|
-
"dependencies": {
|
|
34
|
-
"a-command": ">=0.1.1 <1.0.0",
|
|
35
|
-
"a-js-tools": ">=0.1.3 <1.0.0",
|
|
36
|
-
"a-node-tools": ">=0.1.2 <1.0.0",
|
|
37
|
-
"a-type-of-js": ">=0.1.6",
|
|
38
|
-
"color-pen": ">=0.1.1 <1.0.0"
|
|
39
|
-
},
|
|
40
40
|
"bin": {
|
|
41
|
-
"jja": "bin
|
|
41
|
+
"jja": "bin.js"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/bin/index.js
DELETED
package/mjs/src/git.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{question as t,selection as o}from"a-command";import{getDirectoryBy as a,_p as i,runOtherCode as e,readFileToJsonSync as r,pathJoin as c}from"a-node-tools";import n from"./command.mjs";import s from"color-pen";import{isPlainObject as g}from"a-type-of-js";const m={"git (一些关于 git 的操作)":[`commit (git 提交代码,是 ${s.red("commit")} 提交啊,不是 ${s.hex("#666")("push")} 推送)`,"merge (合并两个分支)","tag (给提交打上 tag)"]};async function u(a){g(a)&&(a={value:[]}),a.commit?await d(a.commit.join(" ")):a.merge?await async function(a){if(""==a){const o=await e("git branch -a");console.log(o.data),a=await t({text:"请输入要合并分支的名称",private:!0})}const i=await o({data:["正常快进合并","非快进合并 (--no-ff)","多提交记录合并为一条 (--squash)"],private:!0},"number");await e(`git merge ${a} ${["","--no-ff","--squash"][i]}`)}(a.merge.join("")):a.tag?await async function(){await l(await t({text:"请输入待标记的信息",private:!0}))}():n.help("git")}async function d(o="版本维护",r=!1){const c=a(".git","directory");if(null==c)return i(s.hex("#ff0")("not a git repository(当前目录非 git 储存库)"));const n=await e({code:"git add .",cwd:c});if(!n.success)return null!=console.log(n.error);const g=await e({code:"git status",cwd:c});if(!/nothing to commit, working tree clean/.test(g.data||"")){const a=await e({code:"git add .",cwd:c});if(!a.success)return null!=console.log(a.error);""==o.trim()&&(o=await t({text:"请输入提交信息",private:!0}));const i=await e({code:`git commit -m "${o}"`,cwd:c});return i.success?(i.error&&console.log(i.error),await e({code:"git push",cwd:c}),r&&await l(o),!0):null!=console.log(i.error)}return!1}async function l(t){const o=a("package.json","file",process.cwd());if(null==o)return!0;const i=r(c(o,"package.json")).version;if(!i)return!0;await e({code:`git tag -a v${i} -m '${t}'`,cwd:o}),await e({code:"git push origin --tag",cwd:o})}export{u as default,m as gitBind,d as gitCommit};
|
package/mjs/src/package.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{getDirectoryBy as e,_p as n,readFileToJsonSync as t,pathJoin as a,runOtherCode as o,getNpmPkgInfo as s,cursorMoveUp as i,cursorAfterClear as c}from"a-node-tools";import r from"./command.mjs";import p from"color-pen";const f={"package <pkg> (包管理)":["--diff <-d> (分析当下包的差异,该功能很鸡肋,因为线上更新比较慢)",`--upDependencies <-u> (更新依赖,跟 ${p.random("npm update")} 一样)`]};async function l(e){e["--upDependencies"]?await u(!0):e["--diff"]?await m(!0):r.help("package")}async function u(s=!0){const r=e("package.json","file");if(null==r)return n("当前目录下不存在 package.json 文件");const f=t(a(r,"package.json")).dependencies||{};if(s&&n(p.green("初始化完成,等待下一步命令")),Object.keys(f).length>0){let e="npm install --save";for(let n=Object.keys(f),t=n.length,a=0;a<t;a++){e+=` ${n[a]}@latest `}await o(e)}var l;s&&n(p.cyan("正在更新 dev 依赖")),await o("npm update --save"),s&&(l="开发依赖更新完毕",i(),c(),n(l))}async function m(o=!1){const i=e("package.json","file");if(null==i)return[];const c=t(a(i,"package.json"))||{},r=c.name,f=c.version;if(!f)return n(p.hex("#25f9aa")(`未检测到当前包 ${r} 的版本号`)),[];const l=await s(r);if(0==Object.keys(l).length)return[f];if(l.name!==r)return[f];if(o){const e=p.hex("#931")(`当前包本地版本为: ${f}`);n(e);let t=`${" ".repeat(6)}线上版本为:${l.version}`;t+=l.version==f?"":p.hex("#668")("(线上更新有延迟)"),n(p.hex("#399")(t));const a=new Date(l.capsule.lastPublish.time).getTime();n(a.toString())}return[f,l.version]}export{m as diffPackage,f as packageBind,l as packageManage,u as updateDependence};
|
package/mjs/src/remove.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{pen as o}from"color-pen";import{_p as e,isWindows as c,fileExist as r,runOtherCode as i}from"a-node-tools";const s={"remove <rm> (做一个简单的兼容的移除文件或文件夹的命令)":["--ignore <-i> (不打印日志(默认打印的))","--subdirectories <-s> (这是一个危险的命令,用于 windows 下递归删除执行命令下所有的给定文件名称)"]},a={log:!1,subdirectories:!1};async function t(r){const i=r.value||[],s=r["--ignore"],t=r["--subdirectories"];for(s&&(a.log=!0,i.concat(s)),t&&(a.subdirectories=!0,i.concat(t)),a.log||e(o.brightCyan("当前系统为: ".concat(c?"windows":"linux/mac"))),0==i.length&&e(o.random("没有待清理的文件/文件夹"));i.length;)await n(i.pop())}async function n(c){!a.log&&e(o.hex("#336")(`当前清理文件为 ${c}`));const i=r(c);!a.log&&e(o.hex("#666")(`正在检测 ${c} 文件/夹是否存在`)),i?await l(u,[c,i]):!a.log&&e(o.yellow(`${c} 文件不存在`))}async function l(c,r,i=5){return!await Reflect.apply(c,void 0,r)&&i--?(e(o.green("执行失败,现在重试中")),await l(c,r,i)):await Reflect.apply(c,void 0,r)}async function u(r,s){!a.log&&e(o.hex("#aaa")(` ${r} 文件/夹存在,准备删除`));let t={error:null};return c?s.isDirectory()?(t=await i(`rd /q /s ${r.replace(/\//,"\\")}`),d(r,t.success)):s.isFile()&&(t=await i({code:`del ${a.subdirectories?"/s":""} /q ${r.replace(/\//,"\\")}`}),d(r,t.success)):(t=await i({code:`rm -rf ${r.replace(/\\/,"/")}`}),d(r,t.success)),!!t.success||void 0!==console.log(t.error)}function d(o,c){e(`清理 ${o} 文件${c?"完成":"失败"}`)}export{t as default,s as removeBind};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{readFileToJsonSync as n,runOtherCode as t}from"a-node-tools";async function o(o){const{value:a}=o;if(0==a.length)return;const r=n("package.json").scripts;if(1==a.length&&r[a[0]])return await t(`npm run ${a[0]}`);await t(a.join(" "))}export{o as runOther};
|
package/mjs/src/update.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{runOtherCode as t,_p as n,getDirectoryBy as e}from"a-node-tools";import{question as i,selection as a}from"a-command";import o from"./command.mjs";import{gitCommit as r}from"./git.mjs";import{updateDependence as p,diffPackage as m}from"./package.mjs";import c from"color-pen";const s=c.green,l={"update <up> (做一个简单的 npm 升级程序,对,简单的)":["--ignore <-i> (不建议你这么用,你会发现你像个傻子一样在那等结果)",`--dependencies <-d> (更新依赖,跟 ${c.random("npm update")} 一样)`,"--npm-publish <-n> (用于 npm 包的升级(自带 git 清理,不三克))"]},u={npmUpdate:!1,log:!0,gitCommit:!1};async function $(l){if(0==Object.keys(l).length)return o.help("update");const $=l["--npm-publish"],f=Boolean(l["--dependencies"]);if(u.log=!l["--ignore"],$)return u.npmUpdate=!0,await async function(){g(c.hex("#9ff")("开始初始化")),"更新"==await i({text:"更新依赖",tip:["跳过","更新"],private:!0})&&await p(u.log),g(c.hex("#666")("请等待更新包(你的 package.json 的 scripts 最好有 build 命令)"));const l=await t("npm run build");l.success||(console.log(l.error),o.end);g(s("打包完成")),await async function(){if(null==e("package.json","file"))return n("当前工作目录下或父级不存在 package.json");const i=await m();if(i.length<2)return 1==i.length;if(i[0]!=i[1])return n(`当前版本为:${c.cyan(i[0])}\n线上版本为: ${c.brightRed(i[1])}\n请保持一致`);g("请选择本次更新版本的类型");const o=i[0];let r,p=0,l=0,u=0;i[0].includes("-")?[p,r]=o.split("-"):p=o;[p,l,u]=p.split("."),p=Number(p),l=Number(l),u=Number(u);const $=await a([`bug (patch) v${o} -> ${p}.${l}.${null==r?u+1:u}`,`新内容 (minor) v${o} -> ${p}.${l+1}.0`,`大换代 (major) v${o} -> ${p+1}.0.0`,`测试版本 (prepatch) v${o} -> ${p}.${l}.${u+1}-0`,`内测版本 (preminor) v${o} -> ${p}.${l+1}.0-0`,`公测版本 (premajor) v${o} -> ${p+1}.0.0-0`,`测试迭代 (prerelease) v${o} -> ${p}.${l}.${null==r?u+1:u}-${null==r?0:Number(r)+1}`]);return g(s("请等待整理版本内容")),await t(`npm version ${$.replace(/.*\((.*)\).*/,"$1")} --no-git-tag-version --force`),!0}()||o.error;if(g(s("版本整理完毕,准备上到 npm")),"提交"==await i({text:"是否需要提交代码?",tip:["跳过","提交"]})){const t=await i({text:"提交说明",private:!0});await async function(t){g(c.cyan("正在整理 git 内容")),await r(t,!0)?(u.gitCommit=!0,g(s("git 内容整理完毕"))):g("git 工作区很干净")}(t)}await t("npm publish"),g(s("上推 npm 包完毕"))}();f&&await p(u.log)}function g(t){return u.log&&n(t),!0}export{$ as default,l as updateBind};
|