@build-script/package-tools 0.0.1
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/LICENSE +21 -0
- package/README.md +136 -0
- package/config/rig.json +6 -0
- package/lib/command-file-map.generated.d.ts +23 -0
- package/lib/command-file-map.generated.d.ts.map +1 -0
- package/lib/command-file-map.generated.js +27 -0
- package/lib/command-file-map.generated.js.map +1 -0
- package/lib/commands/detect-package-change.d.ts +14 -0
- package/lib/commands/detect-package-change.d.ts.map +1 -0
- package/lib/commands/detect-package-change.js +55 -0
- package/lib/commands/detect-package-change.js.map +1 -0
- package/lib/commands/monorepo-bump-version.d.ts +22 -0
- package/lib/commands/monorepo-bump-version.d.ts.map +1 -0
- package/lib/commands/monorepo-bump-version.js +121 -0
- package/lib/commands/monorepo-bump-version.js.map +1 -0
- package/lib/commands/monorepo-cnpm-sync.d.ts +8 -0
- package/lib/commands/monorepo-cnpm-sync.d.ts.map +1 -0
- package/lib/commands/monorepo-cnpm-sync.js +16 -0
- package/lib/commands/monorepo-cnpm-sync.js.map +1 -0
- package/lib/commands/monorepo-invalid.d.ts +8 -0
- package/lib/commands/monorepo-invalid.d.ts.map +1 -0
- package/lib/commands/monorepo-invalid.js +19 -0
- package/lib/commands/monorepo-invalid.js.map +1 -0
- package/lib/commands/monorepo-list.d.ts +22 -0
- package/lib/commands/monorepo-list.d.ts.map +1 -0
- package/lib/commands/monorepo-list.js +40 -0
- package/lib/commands/monorepo-list.js.map +1 -0
- package/lib/commands/monorepo-publish.d.ts +22 -0
- package/lib/commands/monorepo-publish.d.ts.map +1 -0
- package/lib/commands/monorepo-publish.js +178 -0
- package/lib/commands/monorepo-publish.js.map +1 -0
- package/lib/commands/monorepo-tsconfig.d.ts +14 -0
- package/lib/commands/monorepo-tsconfig.d.ts.map +1 -0
- package/lib/commands/monorepo-tsconfig.js +131 -0
- package/lib/commands/monorepo-tsconfig.js.map +1 -0
- package/lib/commands/monorepo-upgrade.d.ts +8 -0
- package/lib/commands/monorepo-upgrade.d.ts.map +1 -0
- package/lib/commands/monorepo-upgrade.js +110 -0
- package/lib/commands/monorepo-upgrade.js.map +1 -0
- package/lib/commands/run-if-version-mismatch.d.ts +23 -0
- package/lib/commands/run-if-version-mismatch.d.ts.map +1 -0
- package/lib/commands/run-if-version-mismatch.js +64 -0
- package/lib/commands/run-if-version-mismatch.js.map +1 -0
- package/lib/commands/sync-my-readme.d.ts +9 -0
- package/lib/commands/sync-my-readme.d.ts.map +1 -0
- package/lib/commands/sync-my-readme.js +51 -0
- package/lib/commands/sync-my-readme.js.map +1 -0
- package/lib/commands/test.d.ts +9 -0
- package/lib/commands/test.d.ts.map +1 -0
- package/lib/commands/test.js +16 -0
- package/lib/commands/test.js.map +1 -0
- package/lib/common/cache/escape-package-path.d.ts +2 -0
- package/lib/common/cache/escape-package-path.d.ts.map +1 -0
- package/lib/common/cache/escape-package-path.js +7 -0
- package/lib/common/cache/escape-package-path.js.map +1 -0
- package/lib/common/cache/native.npm.d.ts +50 -0
- package/lib/common/cache/native.npm.d.ts.map +1 -0
- package/lib/common/cache/native.npm.js +162 -0
- package/lib/common/cache/native.npm.js.map +1 -0
- package/lib/common/functions/cli.d.ts +85 -0
- package/lib/common/functions/cli.d.ts.map +1 -0
- package/lib/common/functions/cli.js +110 -0
- package/lib/common/functions/cli.js.map +1 -0
- package/lib/common/functions/global-lifecycle.d.ts +5 -0
- package/lib/common/functions/global-lifecycle.d.ts.map +1 -0
- package/lib/common/functions/global-lifecycle.js +34 -0
- package/lib/common/functions/global-lifecycle.js.map +1 -0
- package/lib/common/git/git.d.ts +12 -0
- package/lib/common/git/git.d.ts.map +1 -0
- package/lib/common/git/git.js +65 -0
- package/lib/common/git/git.js.map +1 -0
- package/lib/common/package-manager/constant.d.ts +2 -0
- package/lib/common/package-manager/constant.d.ts.map +1 -0
- package/lib/common/package-manager/constant.js +2 -0
- package/lib/common/package-manager/constant.js.map +1 -0
- package/lib/common/package-manager/driver.abstract.d.ts +41 -0
- package/lib/common/package-manager/driver.abstract.d.ts.map +1 -0
- package/lib/common/package-manager/driver.abstract.js +138 -0
- package/lib/common/package-manager/driver.abstract.js.map +1 -0
- package/lib/common/package-manager/driver.npm.d.ts +7 -0
- package/lib/common/package-manager/driver.npm.d.ts.map +1 -0
- package/lib/common/package-manager/driver.npm.js +11 -0
- package/lib/common/package-manager/driver.npm.js.map +1 -0
- package/lib/common/package-manager/driver.pnpm.d.ts +7 -0
- package/lib/common/package-manager/driver.pnpm.d.ts.map +1 -0
- package/lib/common/package-manager/driver.pnpm.js +83 -0
- package/lib/common/package-manager/driver.pnpm.js.map +1 -0
- package/lib/common/package-manager/functions.d.ts +13 -0
- package/lib/common/package-manager/functions.d.ts.map +1 -0
- package/lib/common/package-manager/functions.js +95 -0
- package/lib/common/package-manager/functions.js.map +1 -0
- package/lib/common/package-manager/package-json.d.ts +5 -0
- package/lib/common/package-manager/package-json.d.ts.map +1 -0
- package/lib/common/package-manager/package-json.js +50 -0
- package/lib/common/package-manager/package-json.js.map +1 -0
- package/lib/common/package-manager/package-manager.d.ts +5 -0
- package/lib/common/package-manager/package-manager.d.ts.map +1 -0
- package/lib/common/package-manager/package-manager.js +27 -0
- package/lib/common/package-manager/package-manager.js.map +1 -0
- package/lib/common/package-manager/proxy.d.ts +5 -0
- package/lib/common/package-manager/proxy.d.ts.map +1 -0
- package/lib/common/package-manager/proxy.js +116 -0
- package/lib/common/package-manager/proxy.js.map +1 -0
- package/lib/common/shared-jobs/cnpm-sync.d.ts +4 -0
- package/lib/common/shared-jobs/cnpm-sync.d.ts.map +1 -0
- package/lib/common/shared-jobs/cnpm-sync.js +52 -0
- package/lib/common/shared-jobs/cnpm-sync.js.map +1 -0
- package/lib/common/shared-jobs/detect-change-job.d.ts +12 -0
- package/lib/common/shared-jobs/detect-change-job.d.ts.map +1 -0
- package/lib/common/shared-jobs/detect-change-job.js +52 -0
- package/lib/common/shared-jobs/detect-change-job.js.map +1 -0
- package/lib/common/shared-jobs/publish-package-version-job.d.ts +4 -0
- package/lib/common/shared-jobs/publish-package-version-job.d.ts.map +1 -0
- package/lib/common/shared-jobs/publish-package-version-job.js +40 -0
- package/lib/common/shared-jobs/publish-package-version-job.js.map +1 -0
- package/lib/common/taball/decompress.d.ts +2 -0
- package/lib/common/taball/decompress.d.ts.map +1 -0
- package/lib/common/taball/decompress.js +39 -0
- package/lib/common/taball/decompress.js.map +1 -0
- package/lib/common/taball/file-download.d.ts +15 -0
- package/lib/common/taball/file-download.d.ts.map +1 -0
- package/lib/common/taball/file-download.js +137 -0
- package/lib/common/taball/file-download.js.map +1 -0
- package/lib/common/temp-work-folder.d.ts +20 -0
- package/lib/common/temp-work-folder.d.ts.map +1 -0
- package/lib/common/temp-work-folder.js +68 -0
- package/lib/common/temp-work-folder.js.map +1 -0
- package/lib/common/version.generated.d.ts +12 -0
- package/lib/common/version.generated.d.ts.map +1 -0
- package/lib/common/version.generated.js +17 -0
- package/lib/common/version.generated.js.map +1 -0
- package/lib/main.d.ts +2 -0
- package/lib/main.d.ts.map +1 -0
- package/lib/main.js +115 -0
- package/lib/main.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/load.js +12 -0
- package/package.json +59 -0
- package/src/command-file-map.generated.ts +28 -0
- package/src/command-file-map.generator.ts +23 -0
- package/src/commands/detect-package-change.ts +57 -0
- package/src/commands/monorepo-bump-version.ts +152 -0
- package/src/commands/monorepo-cnpm-sync.ts +19 -0
- package/src/commands/monorepo-invalid.ts +22 -0
- package/src/commands/monorepo-list.ts +46 -0
- package/src/commands/monorepo-publish.ts +227 -0
- package/src/commands/monorepo-tsconfig.ts +156 -0
- package/src/commands/monorepo-upgrade.ts +131 -0
- package/src/commands/run-if-version-mismatch.ts +78 -0
- package/src/commands/sync-my-readme.ts +56 -0
- package/src/commands/test.ts +18 -0
- package/src/common/cache/escape-package-path.ts +6 -0
- package/src/common/cache/native.npm.ts +206 -0
- package/src/common/functions/cli.ts +145 -0
- package/src/common/functions/global-lifecycle.ts +40 -0
- package/src/common/git/git.ts +75 -0
- package/src/common/package-manager/constant.ts +1 -0
- package/src/common/package-manager/driver.abstract.ts +162 -0
- package/src/common/package-manager/driver.npm.ts +13 -0
- package/src/common/package-manager/driver.pnpm.ts +113 -0
- package/src/common/package-manager/functions.ts +117 -0
- package/src/common/package-manager/package-json.ts +56 -0
- package/src/common/package-manager/package-manager.ts +46 -0
- package/src/common/package-manager/proxy.ts +129 -0
- package/src/common/shared-jobs/cnpm-sync.ts +57 -0
- package/src/common/shared-jobs/detect-change-job.ts +76 -0
- package/src/common/shared-jobs/publish-package-version-job.ts +46 -0
- package/src/common/taball/decompress.ts +41 -0
- package/src/common/taball/file-download.ts +166 -0
- package/src/common/temp-work-folder.ts +80 -0
- package/src/common/version.generated.ts +18 -0
- package/src/common/version.generator.ts +15 -0
- package/src/global.d.ts +17 -0
- package/src/main.ts +144 -0
- package/src/tsconfig.json +11 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018 GongT<gongteng524702837@gmail.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Node.js 包发布辅助工具集
|
|
2
|
+
|
|
3
|
+
# 使用方式
|
|
4
|
+
|
|
5
|
+
```text id="usage"
|
|
6
|
+
Usage:
|
|
7
|
+
njspkg [通用参数] <命令> [命令参数]
|
|
8
|
+
|
|
9
|
+
通用参数:
|
|
10
|
+
--quiet: 减少输出
|
|
11
|
+
--registry <value>: npm服务器,默认从.npmrc读取(必须有schema://)
|
|
12
|
+
--dist-tag <value>: 需要从服务器读取时使用的tag,默认为"latest"
|
|
13
|
+
--package <value>: 实际操作前,更改当前目录(此文件夹应包含package.json)
|
|
14
|
+
--json: 输出json格式(部分命令支持)
|
|
15
|
+
--help: 显示帮助信息
|
|
16
|
+
|
|
17
|
+
detect-package-change --bump --json 本地运行npm pack并与npm上的最新版本对比差异
|
|
18
|
+
--bump: 当发现更改时更新package.json,增加版本号0.0.1
|
|
19
|
+
|
|
20
|
+
monorepo-bump-version 在monorepo中按照依赖顺序分别运行detect-package-change
|
|
21
|
+
--skip <value>: 跳过前N-1个包(从第N个包开始运行)
|
|
22
|
+
--allow-private: 即使private=true也执行
|
|
23
|
+
--exclude <value>: 排除指定的包
|
|
24
|
+
|
|
25
|
+
monorepo-cnpm-sync 调用cnpm sync命令
|
|
26
|
+
需要在PATH中存在cnpm命令
|
|
27
|
+
|
|
28
|
+
monorepo-invalid 从npm缓存中删除关于本monorepo的数据,以便安装最新版本
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
monorepo-list --verbose --json --relative 列出所有项目目录
|
|
32
|
+
--verbose: 列出所有信息,而不仅是目录
|
|
33
|
+
--json: 输出json(同时使--verbose和--relative无效)
|
|
34
|
+
--relative: 输出相对路径(相对于monorepo根目录)
|
|
35
|
+
|
|
36
|
+
monorepo-publish --verbose / --silent --dry 在monorepo中按照依赖顺序发布修改过的包
|
|
37
|
+
--verbose: 列出所有信息,而不仅是目录
|
|
38
|
+
--dry: 仅检查修改,不发布(仍会修改version字段)
|
|
39
|
+
--debug: 运行后不要删除临时文件和目录
|
|
40
|
+
--skip <value>: 跳过前N-1个包(从第N个包开始运行)
|
|
41
|
+
--private <value>: 即使private=true也执行
|
|
42
|
+
|
|
43
|
+
monorepo-tsconfig --dev 为所有项目的 tsconfig.json 添加 references 字段
|
|
44
|
+
查找tsconfig.json和src/tsconfig.json
|
|
45
|
+
如果不在这里,可以在package.json中设置exports['./tsconfig.json'] = './xxxx'
|
|
46
|
+
--dev: 也将devDependencies中的包添加到references中
|
|
47
|
+
|
|
48
|
+
monorepo-upgrade 更新monorepo中各个项目的所有依赖版本
|
|
49
|
+
被更新的包必须没有或者用^作为前缀
|
|
50
|
+
|
|
51
|
+
run-if-version-mismatch --no-cache --flush -- command to run 如果版本号改变,则运行命令
|
|
52
|
+
如果package.json中的version与npm上的版本(latest)不一致,则运行命令
|
|
53
|
+
注意: 命令行中的"--"是必须的
|
|
54
|
+
|
|
55
|
+
--no-cache: 禁用缓存
|
|
56
|
+
--flush: 程序成功退出时自动删除npm缓存
|
|
57
|
+
--newer: 只有在本地版本号大于远程版本号时才运行(默认只要不同就运行)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
## 可用工具
|
|
62
|
+
|
|
63
|
+
<details open>
|
|
64
|
+
<summary><h2>detect-package-change - 检测包是否改变</h2></summary>
|
|
65
|
+
|
|
66
|
+
- `--bump`: 不要输出,而是:如果发现有修改,则自动更新package.json(当前仅支持将version的PATCH位+1)
|
|
67
|
+
- `--json`: 输出json(当检测到stdout不是终端时,默认为json输出)
|
|
68
|
+
|
|
69
|
+
此工具要求PATH中存在`git`
|
|
70
|
+
|
|
71
|
+
输出结果示例:
|
|
72
|
+
|
|
73
|
+
- `--json`模式: `{ changedFiles: [......], changed: true }`
|
|
74
|
+
- 默认模式: `changed no.` / `changed yes.`
|
|
75
|
+
|
|
76
|
+
只要运行过程没有错误,程序就返回0,无论是否发现修改。
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary>实现细节</summary>
|
|
80
|
+
|
|
81
|
+
1. 调用`npm-registry-fetch`包,从npm下载最新的`package.json`,它支持标准http缓存和代理设置
|
|
82
|
+
1. 和本地的`package.json`比较`version`字段
|
|
83
|
+
- 如果本地版本号大于远程,则直接判定为`有修改`
|
|
84
|
+
1. 从npm下载dist.tarball指定的压缩包,解压到一个临时目录中
|
|
85
|
+
1. 在包目录中运行`npm pack`(也支持pnpm)得到压缩包
|
|
86
|
+
1. 检查两个压缩包是否相同
|
|
87
|
+
1. 在临时目录中初始化git仓库
|
|
88
|
+
1. 立即提交前面解压结果
|
|
89
|
+
1. 将打包结果覆盖到同一个目录中
|
|
90
|
+
1. 再次提交
|
|
91
|
+
1. 检查`git log`输出的内容(强制LANG=C)
|
|
92
|
+
- 如果没有任何修改,则判定为`无修改`
|
|
93
|
+
1. 如果有`--bump`,调用`semver`修改`package.json`中的`version`字段
|
|
94
|
+
2. 否则输出`有修改`
|
|
95
|
+
</details>
|
|
96
|
+
</details>
|
|
97
|
+
|
|
98
|
+
<details open>
|
|
99
|
+
<summary><h2>run-if-version-mismatch - 判断本地version和远程是否相同,如果不同,运行一个程序</h2></summary>
|
|
100
|
+
|
|
101
|
+
**命令行中的“--”不可省略**
|
|
102
|
+
|
|
103
|
+
示例:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Eg: njspkg run-if-version-mismatch --flush -- pnpm publish --no-git-checks
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
</details>
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
<details open>
|
|
113
|
+
<summary><h2>run-if-version-mismatch - 在每个项目中运行npm run watch脚本</h2></summary>
|
|
114
|
+
|
|
115
|
+
按照依赖顺序,只有上游项目至少成功一次,才会启动下游的watch脚本
|
|
116
|
+
|
|
117
|
+
通过匹配命令输出确定编译是否成功
|
|
118
|
+
|
|
119
|
+
目前仅支持 tsc、heft 两个命令,需要在[这里](src/common/watch-runner/judge.ts)添加新的判断函数
|
|
120
|
+
|
|
121
|
+
</details>
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
<details open>
|
|
125
|
+
<summary><h2>monorepo-publish - 判断包内容,如果有修改就发布到npm</h2></summary>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
相当于按照依赖顺序,在每个项目中:
|
|
129
|
+
1. `njspkg detect-package-change --bump`
|
|
130
|
+
1. `njspkg run-if-version-mismatch -- pnpm run publish`
|
|
131
|
+
|
|
132
|
+
然后在工程中运行一次:
|
|
133
|
+
2. `njspkg monorepo-cnpm-sync`
|
|
134
|
+
3. `njspkg monorepo-invalid`
|
|
135
|
+
|
|
136
|
+
</details>
|
package/config/rig.json
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// The "rig.json" file directs tools to look for their config files in an external package.
|
|
2
|
+
// Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package
|
|
3
|
+
{
|
|
4
|
+
"$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json",
|
|
5
|
+
"rigPackageName": "@internal/local-rig"
|
|
6
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/******************************************************************************
|
|
2
|
+
* GENERATED FILE, DO NOT MODIFY
|
|
3
|
+
* 这是生成的文件,千万不要修改
|
|
4
|
+
*
|
|
5
|
+
* @build-script/codegen 1.0.0 - The Simple Code Generater
|
|
6
|
+
* https://github.com/GongT/baobao
|
|
7
|
+
*
|
|
8
|
+
******************************************************************************/
|
|
9
|
+
declare const _default: {
|
|
10
|
+
readonly "detect-package-change": "./commands/detect-package-change.js";
|
|
11
|
+
readonly "monorepo-bump-version": "./commands/monorepo-bump-version.js";
|
|
12
|
+
readonly "monorepo-cnpm-sync": "./commands/monorepo-cnpm-sync.js";
|
|
13
|
+
readonly "monorepo-invalid": "./commands/monorepo-invalid.js";
|
|
14
|
+
readonly "monorepo-list": "./commands/monorepo-list.js";
|
|
15
|
+
readonly "monorepo-publish": "./commands/monorepo-publish.js";
|
|
16
|
+
readonly "monorepo-tsconfig": "./commands/monorepo-tsconfig.js";
|
|
17
|
+
readonly "monorepo-upgrade": "./commands/monorepo-upgrade.js";
|
|
18
|
+
readonly "run-if-version-mismatch": "./commands/run-if-version-mismatch.js";
|
|
19
|
+
readonly "sync-my-readme": "./commands/sync-my-readme.js";
|
|
20
|
+
readonly test: "./commands/test.js";
|
|
21
|
+
};
|
|
22
|
+
export default _default;
|
|
23
|
+
//# sourceMappingURL=command-file-map.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-file-map.generated.d.ts","sourceRoot":"","sources":["../src/command-file-map.generated.ts"],"names":[],"mappings":"AAKA;;;;;;;gFAOgF;;;;;;;;;;;;;;AAEhF,wBAYW"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* eslint-disable */
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
// biome-ignore-all lint
|
|
4
|
+
// biome-ignore-all assist
|
|
5
|
+
// biome-ignore-all syntax
|
|
6
|
+
/******************************************************************************
|
|
7
|
+
* GENERATED FILE, DO NOT MODIFY
|
|
8
|
+
* 这是生成的文件,千万不要修改
|
|
9
|
+
*
|
|
10
|
+
* @build-script/codegen 1.0.0 - The Simple Code Generater
|
|
11
|
+
* https://github.com/GongT/baobao
|
|
12
|
+
*
|
|
13
|
+
******************************************************************************/
|
|
14
|
+
export default {
|
|
15
|
+
"detect-package-change": "./commands/detect-package-change.js",
|
|
16
|
+
"monorepo-bump-version": "./commands/monorepo-bump-version.js",
|
|
17
|
+
"monorepo-cnpm-sync": "./commands/monorepo-cnpm-sync.js",
|
|
18
|
+
"monorepo-invalid": "./commands/monorepo-invalid.js",
|
|
19
|
+
"monorepo-list": "./commands/monorepo-list.js",
|
|
20
|
+
"monorepo-publish": "./commands/monorepo-publish.js",
|
|
21
|
+
"monorepo-tsconfig": "./commands/monorepo-tsconfig.js",
|
|
22
|
+
"monorepo-upgrade": "./commands/monorepo-upgrade.js",
|
|
23
|
+
"run-if-version-mismatch": "./commands/run-if-version-mismatch.js",
|
|
24
|
+
"sync-my-readme": "./commands/sync-my-readme.js",
|
|
25
|
+
"test": "./commands/test.js"
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=command-file-map.generated.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-file-map.generated.js","sourceRoot":"","sources":["../src/command-file-map.generated.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,aAAa;AACb,wBAAwB;AACxB,0BAA0B;AAC1B,0BAA0B;AAC1B;;;;;;;gFAOgF;AAEhF,eAAe;IACd,uBAAuB,EAAE,qCAAqC;IAC9D,uBAAuB,EAAE,qCAAqC;IAC9D,oBAAoB,EAAE,kCAAkC;IACxD,kBAAkB,EAAE,gCAAgC;IACpD,eAAe,EAAE,6BAA6B;IAC9C,kBAAkB,EAAE,gCAAgC;IACpD,mBAAmB,EAAE,iCAAiC;IACtD,kBAAkB,EAAE,gCAAgC;IACpD,yBAAyB,EAAE,uCAAuC;IAClE,gBAAgB,EAAE,8BAA8B;IAChD,MAAM,EAAE,oBAAoB;CACnB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
protected _arguments: {
|
|
7
|
+
'--bump': {
|
|
8
|
+
flag: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export declare function main(): Promise<number>;
|
|
14
|
+
//# sourceMappingURL=detect-package-change.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-package-change.d.ts","sourceRoot":"","sources":["../../src/commands/detect-package-change.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,aAAa,EAAuB,MAAM,4BAA4B,CAAC;AAQtF,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAA2C;IACpE,UAAmB,YAAY,SAAiC;IAChE,UAAmB,KAAK,SAAM;IAC9B,UAAmB,UAAU;;;;;MAE3B;CACF;AAED,wBAAsB,IAAI,oBAsBzB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { logger } from '@idlebox/logger';
|
|
2
|
+
import { printLine } from '@idlebox/node';
|
|
3
|
+
import { argv, CommandDefine, isJsonOutput, pArgS } from '../common/functions/cli.js';
|
|
4
|
+
import { PackageManagerUsageKind } from '../common/package-manager/driver.abstract.js';
|
|
5
|
+
import { increaseVersion } from '../common/package-manager/package-json.js';
|
|
6
|
+
import { createPackageManager } from '../common/package-manager/package-manager.js';
|
|
7
|
+
import { executeChangeDetect } from '../common/shared-jobs/detect-change-job.js';
|
|
8
|
+
process.env.COREPACK_ENABLE_STRICT = '0';
|
|
9
|
+
export class Command extends CommandDefine {
|
|
10
|
+
_usage = `${pArgS('--bump')} ${pArgS('--json')}`;
|
|
11
|
+
_description = '本地运行npm pack并与npm上的最新版本对比差异';
|
|
12
|
+
_help = '';
|
|
13
|
+
_arguments = {
|
|
14
|
+
'--bump': { flag: true, description: '当发现更改时更新package.json,增加版本号0.0.1' },
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export async function main() {
|
|
18
|
+
const autoInc = argv.flag('--bump');
|
|
19
|
+
const pm = await createPackageManager(PackageManagerUsageKind.Read);
|
|
20
|
+
const pkgJson = await pm.loadPackageJson();
|
|
21
|
+
const { changedFiles, hasChange, remoteVersion } = await executeChangeDetect(pm, {});
|
|
22
|
+
if (autoInc) {
|
|
23
|
+
if (changedFiles.length) {
|
|
24
|
+
logger.log('自动增加版本号...');
|
|
25
|
+
if (!remoteVersion) {
|
|
26
|
+
throw new Error('程序错误, remoteVersion 为空');
|
|
27
|
+
}
|
|
28
|
+
await increaseVersion(pkgJson, remoteVersion);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
logger.log('没有检测到更改');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
printResult(changedFiles, hasChange);
|
|
36
|
+
}
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
function printResult(changedFiles, changed) {
|
|
40
|
+
if (process.stdout.isTTY && !isJsonOutput) {
|
|
41
|
+
if (changedFiles.length === 0) {
|
|
42
|
+
console.log('changes: no');
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
printLine();
|
|
46
|
+
logger.log('%s', changedFiles.join('\n'));
|
|
47
|
+
printLine();
|
|
48
|
+
console.log('changes: yes');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
console.log(JSON.stringify({ changedFiles, changed }));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=detect-package-change.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-package-change.js","sourceRoot":"","sources":["../../src/commands/detect-package-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AAEjF,OAAO,CAAC,GAAG,CAAC,sBAAsB,GAAG,GAAG,CAAC;AAEzC,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,YAAY,GAAG,6BAA6B,CAAC;IAC7C,KAAK,GAAG,EAAE,CAAC;IACX,UAAU,GAAG;QAC/B,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,iCAAiC,EAAE;KACxE,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAErF,IAAI,OAAO,EAAE,CAAC;QACb,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACP,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,CAAC;IACF,CAAC;SAAM,CAAC;QACP,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,CAAC,CAAC;AACV,CAAC;AAED,SAAS,WAAW,CAAC,YAAsB,EAAE,OAAgB;IAC5D,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,SAAS,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
protected _arguments: {
|
|
7
|
+
'--skip': {
|
|
8
|
+
flag: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
'--allow-private': {
|
|
12
|
+
flag: boolean;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
'--exclude': {
|
|
16
|
+
flag: boolean;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function main(): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=monorepo-bump-version.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-bump-version.d.ts","sourceRoot":"","sources":["../../src/commands/monorepo-bump-version.ts"],"names":[],"mappings":"AAMA,OAAO,EAAQ,aAAa,EAAO,MAAM,4BAA4B,CAAC;AAMtE,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAAM;IAC/B,UAAmB,YAAY,SAA+C;IAC9E,UAAmB,KAAK,SAAM;IAC9B,UAAmB,UAAU;;;;;;;;;;;;;MAI3B;CACF;AA8FD,wBAAsB,IAAI,kBAoCzB"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { createWorkspace } from '@build-script/monorepo-lib';
|
|
2
|
+
import { Emitter, humanDate } from '@idlebox/common';
|
|
3
|
+
import { BuilderDependencyGraph } from '@idlebox/dependency-graph';
|
|
4
|
+
import { logger } from '@idlebox/logger';
|
|
5
|
+
import { makeRe } from 'minimatch';
|
|
6
|
+
import { inspect } from 'node:util';
|
|
7
|
+
import { argv, CommandDefine, CSI } from '../common/functions/cli.js';
|
|
8
|
+
import { PackageManagerUsageKind } from '../common/package-manager/driver.abstract.js';
|
|
9
|
+
import { increaseVersion } from '../common/package-manager/package-json.js';
|
|
10
|
+
import { createPackageManager } from '../common/package-manager/package-manager.js';
|
|
11
|
+
import { executeChangeDetect } from '../common/shared-jobs/detect-change-job.js';
|
|
12
|
+
export class Command extends CommandDefine {
|
|
13
|
+
_usage = ``;
|
|
14
|
+
_description = '在monorepo中按照依赖顺序分别运行detect-package-change';
|
|
15
|
+
_help = '';
|
|
16
|
+
_arguments = {
|
|
17
|
+
'--skip': { flag: false, description: '跳过前N-1个包(从第N个包开始运行)' },
|
|
18
|
+
'--allow-private': { flag: true, description: '即使private=true也执行' },
|
|
19
|
+
'--exclude': { flag: false, description: '排除指定的包' },
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
class BumpVersionJob {
|
|
23
|
+
state;
|
|
24
|
+
project;
|
|
25
|
+
workspace;
|
|
26
|
+
_onSuccess = new Emitter();
|
|
27
|
+
onSuccess = this._onSuccess.event;
|
|
28
|
+
_onFailed = new Emitter();
|
|
29
|
+
onFailed = this._onFailed.event;
|
|
30
|
+
_onRunning = new Emitter();
|
|
31
|
+
onRunning = this._onRunning.event;
|
|
32
|
+
allowPrivate;
|
|
33
|
+
constructor(state, project, workspace) {
|
|
34
|
+
this.state = state;
|
|
35
|
+
this.project = project;
|
|
36
|
+
this.workspace = workspace;
|
|
37
|
+
this.allowPrivate = argv.flag('--allow-private') > 0;
|
|
38
|
+
}
|
|
39
|
+
async execute() {
|
|
40
|
+
const { index, length, options, changedPackages } = this.state;
|
|
41
|
+
const w = length.toFixed(0).length;
|
|
42
|
+
console.log(`📦 [${(index + 1).toFixed(0).padStart(w)}/${length}] ${this.project.name}`);
|
|
43
|
+
if (this.project.packageJson.private && !this.allowPrivate) {
|
|
44
|
+
console.log(` 🛑 跳过,private=true: ${this.project.name}`);
|
|
45
|
+
}
|
|
46
|
+
else if (options.skip > index + 1 || options.exclude?.test(this.project.name)) {
|
|
47
|
+
console.log(` ⏩ ${CSI}2m跳过${CSI}0m`);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const startTime = Date.now();
|
|
51
|
+
console.log(` 🔍 ${CSI}38;5;14m检查包${CSI}0m`);
|
|
52
|
+
const pm = await createPackageManager(PackageManagerUsageKind.Write, this.workspace, this.project.absolute);
|
|
53
|
+
const { hasChange, remoteVersion } = await executeChangeDetect(pm, { forcePrivate: this.allowPrivate });
|
|
54
|
+
if (!remoteVersion) {
|
|
55
|
+
console.log(' ✨ 远程版本不存在\n');
|
|
56
|
+
if (this.project.packageJson.version !== '0.0.1') {
|
|
57
|
+
throw new Error(`远程版本不存在,但本地包版本不是 0.0.1\n package: ${pm.projectPath}/package.json`);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
else if (hasChange) {
|
|
61
|
+
changedPackages.push(this.project.name);
|
|
62
|
+
const packageJson = await pm.loadPackageJson();
|
|
63
|
+
await increaseVersion(packageJson, remoteVersion);
|
|
64
|
+
console.log(' ✍️ 已修改本地包版本\n');
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.log(` ✨ ${CSI}38;5;10m未发现修改${CSI}0m (in ${humanDate.delta(Date.now() - startTime)})\n`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
[inspect.custom]() {
|
|
72
|
+
// TODO
|
|
73
|
+
return '~~~~~~~~';
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function options() {
|
|
77
|
+
const excludes = argv.multiple('--exclude');
|
|
78
|
+
let excludeReg;
|
|
79
|
+
if (excludes.length > 0) {
|
|
80
|
+
let regTxt = [];
|
|
81
|
+
for (const exclude of excludes) {
|
|
82
|
+
const match = makeRe(exclude, { platform: 'linux' });
|
|
83
|
+
if (!match) {
|
|
84
|
+
throw new Error(`无法解析排除模式: ${exclude}`);
|
|
85
|
+
}
|
|
86
|
+
regTxt.push(match.source);
|
|
87
|
+
}
|
|
88
|
+
excludeReg = new RegExp(`^(${regTxt.join('|')})$`);
|
|
89
|
+
}
|
|
90
|
+
const skip = Number.parseInt(argv.single('--skip') || '0');
|
|
91
|
+
if (Number.isNaN(skip)) {
|
|
92
|
+
throw new Error('skip 不是数字');
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
exclude: excludeReg,
|
|
96
|
+
skip: skip,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
export async function main() {
|
|
100
|
+
const workspace = await createWorkspace();
|
|
101
|
+
await workspace.decoupleDependencies();
|
|
102
|
+
const projects = await workspace.listPackages();
|
|
103
|
+
const graph = new BuilderDependencyGraph(1, logger);
|
|
104
|
+
const opts = options();
|
|
105
|
+
const changedPackages = [];
|
|
106
|
+
let index = 0;
|
|
107
|
+
for (const project of projects) {
|
|
108
|
+
if (!project.packageJson.name)
|
|
109
|
+
continue;
|
|
110
|
+
graph.addNode(project.packageJson.name, [], new BumpVersionJob({
|
|
111
|
+
index,
|
|
112
|
+
length: projects.length,
|
|
113
|
+
options: opts,
|
|
114
|
+
changedPackages,
|
|
115
|
+
}, project, workspace));
|
|
116
|
+
index++;
|
|
117
|
+
}
|
|
118
|
+
await graph.startup();
|
|
119
|
+
console.log(`🎉 所有任务完成,共修改了 ${changedPackages.length} 个包`);
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=monorepo-bump-version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-bump-version.js","sourceRoot":"","sources":["../../src/commands/monorepo-bump-version.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function main(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=monorepo-cnpm-sync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-cnpm-sync.d.ts","sourceRoot":"","sources":["../../src/commands/monorepo-cnpm-sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAkB,MAAM,4BAA4B,CAAC;AAG3E,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAAM;IAC/B,UAAmB,YAAY,SAAmB;IAClD,UAAmB,KAAK,SAA6B;CACrD;AAED,wBAAsB,IAAI,kBAOzB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createWorkspace } from '@build-script/monorepo-lib';
|
|
2
|
+
import { argv } from '@idlebox/args/default';
|
|
3
|
+
import { CommandDefine, isQuiet, pDesc } from '../common/functions/cli.js';
|
|
4
|
+
import { cnpmSync } from '../common/shared-jobs/cnpm-sync.js';
|
|
5
|
+
export class Command extends CommandDefine {
|
|
6
|
+
_usage = '';
|
|
7
|
+
_description = '调用cnpm sync命令';
|
|
8
|
+
_help = pDesc('需要在PATH中存在cnpm命令');
|
|
9
|
+
}
|
|
10
|
+
export async function main() {
|
|
11
|
+
const workspace = await createWorkspace();
|
|
12
|
+
const list = await workspace.listPackages();
|
|
13
|
+
const dry = argv.flag('--dry') > 0;
|
|
14
|
+
await cnpmSync(list, isQuiet, dry);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=monorepo-cnpm-sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-cnpm-sync.js","sourceRoot":"","sources":["../../src/commands/monorepo-cnpm-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACtB,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,GAAG,eAAe,CAAC;IAC/B,KAAK,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;CACrD;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,MAAM,SAAS,GAAG,MAAM,eAAe,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,YAAY,EAAE,CAAC;IAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function main(): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=monorepo-invalid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-invalid.d.ts","sourceRoot":"","sources":["../../src/commands/monorepo-invalid.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAAM;IAC/B,UAAmB,YAAY,SAAsC;IACrE,UAAmB,KAAK,SAAM;CAC9B;AAED,wBAAsB,IAAI,kBAUzB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { logger } from '@idlebox/logger';
|
|
2
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
3
|
+
import { PackageManagerUsageKind } from '../common/package-manager/driver.abstract.js';
|
|
4
|
+
import { createPackageManager } from '../common/package-manager/package-manager.js';
|
|
5
|
+
export class Command extends CommandDefine {
|
|
6
|
+
_usage = '';
|
|
7
|
+
_description = '从npm缓存中删除关于本monorepo的数据,以便安装最新版本';
|
|
8
|
+
_help = '';
|
|
9
|
+
}
|
|
10
|
+
export async function main() {
|
|
11
|
+
const packageManager = await createPackageManager(PackageManagerUsageKind.Read);
|
|
12
|
+
const cache = await packageManager.createCacheHandler();
|
|
13
|
+
const list = await packageManager.workspace.listPackages();
|
|
14
|
+
logger.log('删除%d个项目在 %s 的npm缓存', list.length, cache.path);
|
|
15
|
+
for (const data of list) {
|
|
16
|
+
await cache.deleteMetadata(data.packageJson.name);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=monorepo-invalid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-invalid.js","sourceRoot":"","sources":["../../src/commands/monorepo-invalid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8CAA8C,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AAEpF,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACtB,MAAM,GAAG,EAAE,CAAC;IACZ,YAAY,GAAG,kCAAkC,CAAC;IAClD,KAAK,GAAG,EAAE,CAAC;CAC9B;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,kBAAkB,EAAE,CAAC;IAExD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IAE3D,MAAM,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
protected _arguments: {
|
|
7
|
+
'--verbose': {
|
|
8
|
+
flag: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
'--json': {
|
|
12
|
+
flag: boolean;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
'--relative': {
|
|
16
|
+
flag: boolean;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function main(): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=monorepo-list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-list.d.ts","sourceRoot":"","sources":["../../src/commands/monorepo-list.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,aAAa,EAAkC,MAAM,4BAA4B,CAAC;AAEjG,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAAqE;IAC9F,UAAmB,YAAY,SAAc;IAC7C,UAAmB,KAAK,SAAM;IAC9B,UAAmB,UAAU;;;;;;;;;;;;;MAI3B;CACF;AAED,wBAAsB,IAAI,kBA+BzB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { createWorkspace } from '@build-script/monorepo-lib';
|
|
2
|
+
import { argv, CommandDefine, isJsonOutput, isVerbose, pArgS } from '../common/functions/cli.js';
|
|
3
|
+
export class Command extends CommandDefine {
|
|
4
|
+
_usage = `${pArgS('--verbose')} ${pArgS('--json')} ${pArgS('--relative')}`;
|
|
5
|
+
_description = '列出所有项目目录';
|
|
6
|
+
_help = '';
|
|
7
|
+
_arguments = {
|
|
8
|
+
'--verbose': { flag: true, description: '列出所有信息,而不仅是目录' },
|
|
9
|
+
'--json': { flag: true, description: '输出json(同时使--verbose和--relative无效)' },
|
|
10
|
+
'--relative': { flag: true, description: '输出相对路径(相对于monorepo根目录)' },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export async function main() {
|
|
14
|
+
const repo = await createWorkspace();
|
|
15
|
+
const list = await repo.listPackages();
|
|
16
|
+
const isRelative = argv.flag('--relative') > 0;
|
|
17
|
+
if (isJsonOutput) {
|
|
18
|
+
console.log(JSON.stringify(list.map((e) => {
|
|
19
|
+
const { packageJson, ...extras } = e;
|
|
20
|
+
return extras;
|
|
21
|
+
})));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
for (const item of list) {
|
|
25
|
+
if (isVerbose) {
|
|
26
|
+
console.log('name: %s', item.name);
|
|
27
|
+
console.log('path: %s', item.absolute);
|
|
28
|
+
console.log('relative: %s', item.relative);
|
|
29
|
+
console.log('dependOn: %s', item.dependencies.join(', '));
|
|
30
|
+
console.log('');
|
|
31
|
+
}
|
|
32
|
+
else if (isRelative) {
|
|
33
|
+
console.log(item.relative);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log(item.absolute);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=monorepo-list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-list.js","sourceRoot":"","sources":["../../src/commands/monorepo-list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEjG,MAAM,OAAO,OAAQ,SAAQ,aAAa;IACtB,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;IAC3E,YAAY,GAAG,UAAU,CAAC;IAC1B,KAAK,GAAG,EAAE,CAAC;IACX,UAAU,GAAG;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE;QACzD,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,mCAAmC,EAAE;QAC1E,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,wBAAwB,EAAE;KACnE,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,IAAI;IACzB,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;IAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAE/C,IAAI,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CACV,IAAI,CAAC,SAAS,CACb,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CACF,CACD,CAAC;QACF,OAAO;IACR,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { CommandDefine } from '../common/functions/cli.js';
|
|
2
|
+
export declare class Command extends CommandDefine {
|
|
3
|
+
protected _usage: string;
|
|
4
|
+
protected _description: string;
|
|
5
|
+
protected _help: string;
|
|
6
|
+
protected _arguments: {
|
|
7
|
+
'--debug': {
|
|
8
|
+
flag: boolean;
|
|
9
|
+
description: string;
|
|
10
|
+
};
|
|
11
|
+
'--dry': {
|
|
12
|
+
flag: boolean;
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
'--private': {
|
|
16
|
+
flag: boolean;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
export declare function main(): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=monorepo-publish.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monorepo-publish.d.ts","sourceRoot":"","sources":["../../src/commands/monorepo-publish.ts"],"names":[],"mappings":"AAaA,OAAO,EAAQ,aAAa,EAAc,MAAM,4BAA4B,CAAC;AAO7E,qBAAa,OAAQ,SAAQ,aAAa;IACzC,UAAmB,MAAM,SAA2C;IACpE,UAAmB,YAAY,SAA6B;IAC5D,UAAmB,KAAK,SAAM;IAC9B,UAAmB,UAAU;;;;;;;;;;;;;MAI3B;CACF;AA4GD,wBAAsB,IAAI,kBAyFzB"}
|