@icebreakers/monorepo-templates 2.0.0 → 2.0.2
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 +2 -2
- package/README.zh-CN.md +2 -2
- package/assets/.github/ISSUE_TEMPLATE/config.yml +1 -1
- package/assets/.github/workflows/ci.yml +1 -1
- package/assets/.github/workflows/release.yml +10 -0
- package/assets/CONTRIBUTING.md +1 -1
- package/assets/SECURITY.md +1 -1
- package/assets/package.json +11 -11
- package/assets/pnpm-workspace.yaml +4 -4
- package/assets/renovate.json +3 -0
- package/package.json +4 -4
- package/templates/cli/package.json +2 -2
- package/templates/client/package.json +15 -15
- package/templates/server/package.json +5 -5
- package/templates/tsdown/package.json +2 -2
- package/templates/vitepress/.vitepress/config.ts +4 -3
- package/templates/vitepress/.vitepress/seo.ts +12 -0
- package/templates/vitepress/.vitepress/theme/components/HomePage.vue +25 -0
- package/templates/vitepress/ai/index.md +12 -0
- package/templates/vitepress/index.md +1 -1
- package/templates/vitepress/learn/tools/repoctl-vs-pnpm-turborepo.md +16 -0
- package/templates/vitepress/package.json +4 -4
- package/templates/vitepress/public/robots.txt +5 -0
- package/templates/vitepress/start/index.md +2 -0
- package/templates/vitepress/start/install-repoctl.md +16 -0
- package/templates/vitepress/start/what-is-repoctl.md +18 -0
- package/templates/vitepress/zh/index.md +1 -1
- package/templates/vitepress/zh/learn/packages/modern/bundlers.md +3 -3
- package/templates/vitepress/zh/learn/packages/modern/index.md +1 -1
- package/templates/vitepress/zh/learn/tools/repoctl-vs-pnpm-turborepo.md +16 -0
- package/templates/vitepress/zh/start/index.md +2 -0
- package/templates/vitepress/zh/start/install-repoctl.md +16 -0
- package/templates/vitepress/zh/start/what-is-repoctl.md +16 -0
- package/templates/vue-lib/package.json +7 -7
package/README.md
CHANGED
|
@@ -26,5 +26,5 @@ The source workspaces under the repository's `templates/` directory are private.
|
|
|
26
26
|
## Project links
|
|
27
27
|
|
|
28
28
|
- Documentation: https://repoctl.icebreaker.top
|
|
29
|
-
- Repository: https://github.com/
|
|
30
|
-
- Issues: https://github.com/
|
|
29
|
+
- Repository: https://github.com/icelib/repoctl/tree/main/packages/monorepo-templates
|
|
30
|
+
- Issues: https://github.com/icelib/repoctl/issues
|
package/README.zh-CN.md
CHANGED
|
@@ -18,5 +18,5 @@ const vitepress = getTemplateDefinition('vitepress')
|
|
|
18
18
|
## 项目链接
|
|
19
19
|
|
|
20
20
|
- 文档:https://repoctl.icebreaker.top
|
|
21
|
-
- 仓库:https://github.com/
|
|
22
|
-
- 问题反馈:https://github.com/
|
|
21
|
+
- 仓库:https://github.com/icelib/repoctl/tree/main/packages/monorepo-templates
|
|
22
|
+
- 问题反馈:https://github.com/icelib/repoctl/issues
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
blank_issues_enabled: false
|
|
2
2
|
contact_links:
|
|
3
3
|
- name: Feature Request
|
|
4
|
-
url: https://github.com/
|
|
4
|
+
url: https://github.com/icelib/repoctl/discussions
|
|
5
5
|
about: Suggest new features for consideration
|
|
6
6
|
# - name: Discord Chat
|
|
7
7
|
# url: https://chat.vuejs.org
|
|
@@ -79,6 +79,6 @@ jobs:
|
|
|
79
79
|
run: pnpm test
|
|
80
80
|
|
|
81
81
|
- name: Upload coverage reports to Codecov
|
|
82
|
-
uses: codecov/codecov-action@
|
|
82
|
+
uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1
|
|
83
83
|
env:
|
|
84
84
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
|
@@ -21,6 +21,7 @@ on:
|
|
|
21
21
|
- prepare
|
|
22
22
|
- publish
|
|
23
23
|
- publish-unpublished
|
|
24
|
+
- reconcile
|
|
24
25
|
package:
|
|
25
26
|
description: Package used for unpublished-version recovery
|
|
26
27
|
required: false
|
|
@@ -29,6 +30,11 @@ on:
|
|
|
29
30
|
description: Version used for unpublished-version recovery
|
|
30
31
|
required: false
|
|
31
32
|
type: string
|
|
33
|
+
dry-run:
|
|
34
|
+
description: Preview release reconciliation without changes
|
|
35
|
+
required: false
|
|
36
|
+
default: false
|
|
37
|
+
type: boolean
|
|
32
38
|
|
|
33
39
|
env:
|
|
34
40
|
HUSKY: 0
|
|
@@ -63,6 +69,9 @@ jobs:
|
|
|
63
69
|
cache: pnpm
|
|
64
70
|
registry-url: https://registry.npmjs.org
|
|
65
71
|
|
|
72
|
+
- name: Install npm with trusted publishing support
|
|
73
|
+
run: npm install --global npm@11.16.0 --registry=https://registry.npmjs.org
|
|
74
|
+
|
|
66
75
|
- name: Install Dependencies
|
|
67
76
|
run: pnpm install --frozen-lockfile
|
|
68
77
|
|
|
@@ -72,4 +81,5 @@ jobs:
|
|
|
72
81
|
REPO_RELEASE_MODE: ${{ inputs.mode || 'auto' }}
|
|
73
82
|
REPO_RELEASE_PACKAGE: ${{ inputs.package }}
|
|
74
83
|
REPO_RELEASE_VERSION: ${{ inputs.version }}
|
|
84
|
+
REPO_RELEASE_DRY_RUN: ${{ inputs.dry-run }}
|
|
75
85
|
run: pnpm exec repo release ci
|
package/assets/CONTRIBUTING.md
CHANGED
|
@@ -31,4 +31,4 @@ The repository includes repoctl's CLI and monorepo engine, template assets, shar
|
|
|
31
31
|
|
|
32
32
|
When changing templates or managed root assets, update their source first and refresh packaged copies with `pnpm --filter @icebreakers/monorepo-templates sync:assets`.
|
|
33
33
|
|
|
34
|
-
Report bugs at https://github.com/
|
|
34
|
+
Report bugs at https://github.com/icelib/repoctl/issues and use discussions for design questions that do not yet have a concrete implementation.
|
package/assets/SECURITY.md
CHANGED
|
@@ -10,7 +10,7 @@ Security fixes are provided for the latest stable major release of `repoctl` and
|
|
|
10
10
|
|
|
11
11
|
Do not open a public issue for a suspected vulnerability. Use GitHub's private vulnerability reporting for `sonofmagic/repoctl`:
|
|
12
12
|
|
|
13
|
-
https://github.com/
|
|
13
|
+
https://github.com/icelib/repoctl/security/advisories/new
|
|
14
14
|
|
|
15
15
|
Include the affected version, environment, impact, reproduction steps, and any suggested mitigation. Maintainers will acknowledge a complete report as soon as practical and coordinate validation, remediation, and disclosure with the reporter.
|
|
16
16
|
|
package/assets/package.json
CHANGED
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
"type": "module",
|
|
4
4
|
"version": "0.0.0",
|
|
5
5
|
"private": true,
|
|
6
|
-
"packageManager": "pnpm@12.
|
|
6
|
+
"packageManager": "pnpm@12.5.1",
|
|
7
7
|
"description": "Source workspace for repoctl and Icebreaker's shared development packages",
|
|
8
8
|
"author": "ice breaker <hi@sonofmagic.top>",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"homepage": "https://repoctl.icebreaker.top",
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/
|
|
13
|
+
"url": "git+https://github.com/icelib/repoctl.git"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -71,15 +71,15 @@
|
|
|
71
71
|
"--------": "----------------"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
|
-
"@commitlint/cli": "^21.2.
|
|
75
|
-
"@eslint/config-inspector": "^3.
|
|
74
|
+
"@commitlint/cli": "^21.2.3",
|
|
75
|
+
"@eslint/config-inspector": "^3.5.0",
|
|
76
76
|
"@icebreakers/commitlint-config": "workspace:*",
|
|
77
77
|
"@icebreakers/eslint-config": "workspace:*",
|
|
78
78
|
"@icebreakers/monorepo": "workspace:*",
|
|
79
79
|
"@icebreakers/stylelint-config": "workspace:*",
|
|
80
|
-
"@types/node": "^26.
|
|
81
|
-
"@vitest/coverage-v8": "~5.0.
|
|
82
|
-
"eslint": "^10.
|
|
80
|
+
"@types/node": "^26.6.2",
|
|
81
|
+
"@vitest/coverage-v8": "~5.0.1",
|
|
82
|
+
"eslint": "^10.11.0",
|
|
83
83
|
"execa": "^10.0.1",
|
|
84
84
|
"husky": "^9.1.7",
|
|
85
85
|
"lint-staged": "^17.5.1",
|
|
@@ -89,10 +89,10 @@
|
|
|
89
89
|
"tailwindcss": "^4.3.3",
|
|
90
90
|
"tsd": "^0.33.0",
|
|
91
91
|
"tsdown": "0.23.0",
|
|
92
|
-
"turbo": "^2.
|
|
92
|
+
"turbo": "^2.11.3",
|
|
93
93
|
"typescript": "^6.0.3",
|
|
94
|
-
"vitest": "~5.0.
|
|
95
|
-
"yaml": "^2.9.
|
|
94
|
+
"vitest": "~5.0.1",
|
|
95
|
+
"yaml": "^2.9.1"
|
|
96
96
|
},
|
|
97
97
|
"publishConfig": {
|
|
98
98
|
"access": "public",
|
|
@@ -15,15 +15,15 @@ allowBuilds:
|
|
|
15
15
|
vue-demi: true
|
|
16
16
|
workerd: true
|
|
17
17
|
overrides:
|
|
18
|
-
prettier: 3.9.
|
|
18
|
+
prettier: 3.9.9
|
|
19
19
|
typescript: 6.0.3
|
|
20
20
|
vite: 8.3.0
|
|
21
21
|
postcss: 8.5.28
|
|
22
22
|
postcss-selector-parser: 7.1.6
|
|
23
|
-
js-yaml: 5.4.
|
|
23
|
+
js-yaml: 5.4.2
|
|
24
24
|
nanoid: 6.0.1
|
|
25
|
-
brace-expansion: 5.0.
|
|
25
|
+
brace-expansion: 5.0.12
|
|
26
26
|
cross-spawn: 7.0.6
|
|
27
|
-
adm-zip: 0.6.
|
|
27
|
+
adm-zip: 0.6.1
|
|
28
28
|
uuid: 14.0.2
|
|
29
29
|
esbuild: 0.28.2
|
package/assets/renovate.json
CHANGED
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@icebreakers/monorepo-templates",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.2",
|
|
5
5
|
"description": "Built-in project templates and managed workspace assets for repoctl",
|
|
6
6
|
"author": "ice breaker <hi@sonofmagic.top>",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://repoctl.icebreaker.top",
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/
|
|
11
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
12
12
|
"directory": "packages/monorepo-templates"
|
|
13
13
|
},
|
|
14
14
|
"bugs": {
|
|
15
|
-
"url": "https://github.com/
|
|
15
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
16
16
|
},
|
|
17
17
|
"keywords": [
|
|
18
18
|
"repoctl",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@inquirer/select": "^5.2.5",
|
|
52
52
|
"commander": "^15.0.0",
|
|
53
53
|
"nanoexec": "^1.1.0",
|
|
54
|
-
"yaml": "^2.9.
|
|
54
|
+
"yaml": "^2.9.1"
|
|
55
55
|
},
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/cli"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/client"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -37,37 +37,37 @@
|
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@faker-js/faker": "^10.6.0",
|
|
40
|
-
"@tanstack/vue-query": "^5.
|
|
41
|
-
"@tanstack/vue-query-devtools": "^6.
|
|
40
|
+
"@tanstack/vue-query": "^5.103.2",
|
|
41
|
+
"@tanstack/vue-query-devtools": "^6.2.4",
|
|
42
42
|
"@tanstack/vue-table": "^9.2.4",
|
|
43
|
-
"@tanstack/vue-virtual": "^3.13.
|
|
44
|
-
"@trpc/client": "^11.
|
|
43
|
+
"@tanstack/vue-virtual": "^3.13.39",
|
|
44
|
+
"@trpc/client": "^11.19.0",
|
|
45
45
|
"clsx": "^2.1.1",
|
|
46
46
|
"pinia": "^4.0.3",
|
|
47
|
-
"tailwind-merge": "^3.
|
|
47
|
+
"tailwind-merge": "^3.7.0",
|
|
48
48
|
"tailwind-variants": "^3.3.1",
|
|
49
|
-
"vue": "^3.5.
|
|
50
|
-
"vue-i18n": "^11.4.
|
|
49
|
+
"vue": "^3.5.43",
|
|
50
|
+
"vue-i18n": "^11.4.12",
|
|
51
51
|
"vue-router": "^5.3.1"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@cloudflare/vite-plugin": "^1.
|
|
54
|
+
"@cloudflare/vite-plugin": "^1.56.0",
|
|
55
55
|
"@hono/node-server": "^2.1.1",
|
|
56
56
|
"@hono/trpc-server": "^0.4.2",
|
|
57
57
|
"@tailwindcss/vite": "^4.3.3",
|
|
58
|
-
"@trpc/server": "^11.
|
|
59
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
58
|
+
"@trpc/server": "^11.19.0",
|
|
59
|
+
"@vitejs/plugin-vue": "^6.0.9",
|
|
60
60
|
"@vitejs/plugin-vue-jsx": "^5.1.6",
|
|
61
61
|
"@vue/tsconfig": "^0.9.1",
|
|
62
62
|
"consola": "^3.4.2",
|
|
63
|
-
"hono": "^4.13.
|
|
63
|
+
"hono": "^4.13.8",
|
|
64
64
|
"tailwindcss": "^4.3.3",
|
|
65
65
|
"typescript": "~6.0.3",
|
|
66
66
|
"vite": "^8.3.0",
|
|
67
67
|
"vite-plugin-vue-devtools": "^8.2.1",
|
|
68
68
|
"vite-tsconfig-paths": "^6.1.1",
|
|
69
69
|
"vue-tsc": "3.3.11",
|
|
70
|
-
"wrangler": "^4.
|
|
71
|
-
"zod": "^4.6.
|
|
70
|
+
"wrangler": "^4.135.0",
|
|
71
|
+
"zod": "^4.6.5"
|
|
72
72
|
}
|
|
73
73
|
}
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/server"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -66,9 +66,9 @@
|
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@hono/node-server": "^2.1.1",
|
|
68
68
|
"consola": "^3.4.2",
|
|
69
|
-
"hono": "^4.13.
|
|
69
|
+
"hono": "^4.13.8",
|
|
70
70
|
"tsdown": "0.23.0",
|
|
71
|
-
"wrangler": "^4.
|
|
72
|
-
"zod": "^4.6.
|
|
71
|
+
"wrangler": "^4.135.0",
|
|
72
|
+
"zod": "^4.6.5"
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/tsdown"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -9,6 +9,7 @@ export default withMermaid(defineConfig({
|
|
|
9
9
|
outDir: '.vitepress/dist',
|
|
10
10
|
srcExclude: ['CHANGELOG.md', 'learn/packages/examples/**', 'zh/learn/packages/examples/**'],
|
|
11
11
|
title: 'repoctl',
|
|
12
|
+
titleTemplate: ':title — Official CLI for pnpm and Turborepo Monorepos',
|
|
12
13
|
description: 'A practical CLI guide for setting up, checking, and maintaining pnpm and Turborepo monorepos.',
|
|
13
14
|
lastUpdated: true,
|
|
14
15
|
cleanUrls: true,
|
|
@@ -27,7 +28,7 @@ export default withMermaid(defineConfig({
|
|
|
27
28
|
alt: 'repoctl',
|
|
28
29
|
},
|
|
29
30
|
search: { provider: 'local' },
|
|
30
|
-
socialLinks: [{ icon: 'github', link: 'https://github.com/
|
|
31
|
+
socialLinks: [{ icon: 'github', link: 'https://github.com/icelib/repoctl' }],
|
|
31
32
|
},
|
|
32
33
|
locales: {
|
|
33
34
|
root: {
|
|
@@ -40,7 +41,7 @@ export default withMermaid(defineConfig({
|
|
|
40
41
|
outline: { label: 'On This Page', level: [2, 3] },
|
|
41
42
|
sidebar: createSidebars('en'),
|
|
42
43
|
editLink: {
|
|
43
|
-
pattern: 'https://github.com/
|
|
44
|
+
pattern: 'https://github.com/icelib/repoctl/edit/main/templates/vitepress/:path',
|
|
44
45
|
text: 'Edit this page',
|
|
45
46
|
},
|
|
46
47
|
docFooter: { prev: 'Previous page', next: 'Next page' },
|
|
@@ -58,7 +59,7 @@ export default withMermaid(defineConfig({
|
|
|
58
59
|
outline: { label: '目录', level: [2, 3] },
|
|
59
60
|
sidebar: createSidebars('zh'),
|
|
60
61
|
editLink: {
|
|
61
|
-
pattern: 'https://github.com/
|
|
62
|
+
pattern: 'https://github.com/icelib/repoctl/edit/main/templates/vitepress/:path',
|
|
62
63
|
text: '为此页提供修改建议',
|
|
63
64
|
},
|
|
64
65
|
docFooter: { prev: '上一页', next: '下一页' },
|
|
@@ -29,6 +29,14 @@ export function createPageHead({ page, title, description }: TransformContext):
|
|
|
29
29
|
const socialImageAlt = isChinese
|
|
30
30
|
? 'repoctl:面向 pnpm 与 Turborepo monorepo 的任务型 CLI'
|
|
31
31
|
: 'repoctl: task-first CLI for pnpm and Turborepo monorepos'
|
|
32
|
+
const jsonLd = {
|
|
33
|
+
'@context': 'https://schema.org',
|
|
34
|
+
'@graph': [
|
|
35
|
+
{ '@type': 'Organization', 'name': 'repoctl', 'url': siteOrigin, 'logo': `${siteOrigin}/brand/repoctl-mark.svg`, 'sameAs': ['https://github.com/icelib/repoctl', 'https://www.npmjs.com/package/repoctl'] },
|
|
36
|
+
{ '@type': 'SoftwareApplication', 'name': 'repoctl', 'applicationCategory': 'DeveloperApplication', 'operatingSystem': 'macOS, Linux, Windows', 'url': siteOrigin, description, 'sameAs': ['https://github.com/icelib/repoctl', 'https://www.npmjs.com/package/repoctl'], 'offers': { '@type': 'Offer', 'price': '0', 'priceCurrency': 'USD' } },
|
|
37
|
+
{ '@type': 'WebSite', 'name': 'repoctl', 'url': siteOrigin, 'potentialAction': { '@type': 'SearchAction', 'target': `${siteOrigin}/reference/commands?q={search_term_string}`, 'query-input': 'required name=search_term_string' } },
|
|
38
|
+
],
|
|
39
|
+
}
|
|
32
40
|
|
|
33
41
|
return [
|
|
34
42
|
['link', { rel: 'canonical', href: canonical }],
|
|
@@ -45,10 +53,14 @@ export function createPageHead({ page, title, description }: TransformContext):
|
|
|
45
53
|
['meta', { property: 'og:image:width', content: '1200' }],
|
|
46
54
|
['meta', { property: 'og:image:height', content: '630' }],
|
|
47
55
|
['meta', { property: 'og:image:alt', content: socialImageAlt }],
|
|
56
|
+
['meta', { property: 'og:image:type', content: 'image/png' }],
|
|
57
|
+
['meta', { name: 'author', content: 'repoctl contributors' }],
|
|
58
|
+
['meta', { name: 'application-name', content: 'repoctl' }],
|
|
48
59
|
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
|
|
49
60
|
['meta', { name: 'twitter:title', content: title }],
|
|
50
61
|
['meta', { name: 'twitter:description', content: description }],
|
|
51
62
|
['meta', { name: 'twitter:image', content: socialImage }],
|
|
52
63
|
['meta', { name: 'twitter:image:alt', content: socialImageAlt }],
|
|
64
|
+
['script', { type: 'application/ld+json' }, JSON.stringify(jsonLd)],
|
|
53
65
|
]
|
|
54
66
|
}
|
|
@@ -5,6 +5,19 @@ import { homeContent } from '../../home/content'
|
|
|
5
5
|
|
|
6
6
|
const props = defineProps<{ locale: DocsLocale }>()
|
|
7
7
|
const content = computed(() => homeContent[props.locale])
|
|
8
|
+
const faq = computed(() => props.locale === 'zh'
|
|
9
|
+
? [
|
|
10
|
+
['repoctl 是什么?', 'repoctl 是面向 pnpm 与 Turborepo monorepo 的任务型 CLI,用于初始化、诊断、创建、校验和发布工作区。'],
|
|
11
|
+
['如何安装 repoctl?', '在项目中运行 pnpm add -D repoctl,然后使用 pnpm exec repo init 和 pnpm exec repo doctor。'],
|
|
12
|
+
['repoctl 与 pnpm、Turborepo 是什么关系?', 'pnpm 和 Turborepo 负责包管理与任务编排,repoctl 负责把团队约定、检查和日常操作组织成可复用任务。'],
|
|
13
|
+
['repo doctor 与 repo check 有什么区别?', 'repo doctor 诊断仓库健康状况,repo check 规划并执行 lint、类型、构建和测试校验。'],
|
|
14
|
+
]
|
|
15
|
+
: [
|
|
16
|
+
['What is repoctl?', 'repoctl is a task-first CLI for initializing, diagnosing, creating, checking, and releasing pnpm and Turborepo monorepos.'],
|
|
17
|
+
['How do I install repoctl?', 'Run pnpm add -D repoctl, then use pnpm exec repo init and pnpm exec repo doctor.'],
|
|
18
|
+
['How does repoctl relate to pnpm and Turborepo?', 'pnpm and Turborepo provide package management and task orchestration; repoctl turns repository conventions and checks into reusable tasks.'],
|
|
19
|
+
['What is the difference between repo doctor and repo check?', 'repo doctor diagnoses repository health, while repo check plans and runs lint, type, build, and test checks.'],
|
|
20
|
+
])
|
|
8
21
|
</script>
|
|
9
22
|
|
|
10
23
|
<template>
|
|
@@ -108,5 +121,17 @@ const content = computed(() => homeContent[props.locale])
|
|
|
108
121
|
</a>
|
|
109
122
|
</div>
|
|
110
123
|
</section>
|
|
124
|
+
<section class="repoctl-home__section repoctl-home__faq" aria-labelledby="repoctl-faq-title">
|
|
125
|
+
<h2 id="repoctl-faq-title">
|
|
126
|
+
{{ props.locale === 'zh' ? '常见问题' : 'Frequently asked questions' }}
|
|
127
|
+
</h2>
|
|
128
|
+
<details v-for="item in faq" :key="item[0]">
|
|
129
|
+
<summary>{{ item[0] }}</summary>
|
|
130
|
+
<p>{{ item[1] }}</p>
|
|
131
|
+
</details>
|
|
132
|
+
<script type="application/ld+json">
|
|
133
|
+
{{ JSON.stringify({ '@context': 'https://schema.org', '@type': 'FAQPage', "mainEntity": faq.map(item => ({ '@type': 'Question', "name": item[0], "acceptedAnswer": { '@type': 'Answer', "text": item[1] } })) }) }}
|
|
134
|
+
</script>
|
|
135
|
+
</section>
|
|
111
136
|
</main>
|
|
112
137
|
</template>
|
|
@@ -4,6 +4,18 @@ outline: deep
|
|
|
4
4
|
|
|
5
5
|
# AI Documentation
|
|
6
6
|
|
|
7
|
+
## Product facts
|
|
8
|
+
|
|
9
|
+
| Field | Value |
|
|
10
|
+
| ------------- | ---------------------------------------------------- |
|
|
11
|
+
| Product | repoctl, task-first CLI for monorepos |
|
|
12
|
+
| Official site | https://repoctl.icebreaker.top |
|
|
13
|
+
| Source | https://github.com/icelib/repoctl |
|
|
14
|
+
| npm package | `repoctl` — https://www.npmjs.com/package/repoctl |
|
|
15
|
+
| Install | `pnpm add -D repoctl` |
|
|
16
|
+
| Core commands | `repo init`, `repo doctor`, `repo new`, `repo check` |
|
|
17
|
+
| Works with | pnpm workspaces and Turborepo |
|
|
18
|
+
|
|
7
19
|
repoctl publishes AI-readable documentation alongside the human site.
|
|
8
20
|
|
|
9
21
|
## Recommended Entrypoints
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: repoctl, pnpm, and Turborepo
|
|
3
|
+
description: Understand how repoctl complements pnpm and Turborepo in a modern monorepo toolchain.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# repoctl, pnpm, and Turborepo
|
|
7
|
+
|
|
8
|
+
pnpm manages packages and dependencies. Turborepo orchestrates tasks and caching. repoctl provides repository workflows, conventions, diagnostics, templates, checks, reports, and release steps.
|
|
9
|
+
|
|
10
|
+
| Tool | Primary responsibility |
|
|
11
|
+
| --------- | -------------------------------------------- |
|
|
12
|
+
| pnpm | Workspace packages and dependency management |
|
|
13
|
+
| Turborepo | Task pipelines and caching |
|
|
14
|
+
| repoctl | Repository operations and guided checks |
|
|
15
|
+
|
|
16
|
+
See [what repoctl is](/start/what-is-repoctl) and [install repoctl](/start/install-repoctl).
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/vitepress"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"typecheck": "vue-tsc -p tsconfig.json --noEmit"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"vue": "^3.5.
|
|
40
|
+
"vue": "^3.5.43"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@braintree/sanitize-url": "^7.1.2",
|
|
@@ -52,6 +52,6 @@
|
|
|
52
52
|
"vitepress-plugin-llms": "^1.14.0",
|
|
53
53
|
"vitepress-plugin-mermaid": "^2.0.17",
|
|
54
54
|
"vue-tsc": "^3.3.11",
|
|
55
|
-
"wrangler": "^4.
|
|
55
|
+
"wrangler": "^4.135.0"
|
|
56
56
|
}
|
|
57
57
|
}
|
|
@@ -5,6 +5,8 @@ Use this section when repoctl is new to you. The shortest useful path is to inst
|
|
|
5
5
|
## Pick your first move
|
|
6
6
|
|
|
7
7
|
- [Install and initialize](./install.md) if this is your first repoctl command.
|
|
8
|
+
- [What is repoctl?](./what-is-repoctl.md) for the product overview.
|
|
9
|
+
- [Install repoctl](./install-repoctl.md) for the shortest setup path.
|
|
8
10
|
- [Run the first diagnosis](./diagnose.md) if repoctl is already installed.
|
|
9
11
|
- [Choose the next task](./choose-next.md) after you have a diagnosis.
|
|
10
12
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Install repoctl
|
|
3
|
+
description: Install repoctl in a pnpm monorepo, initialize managed defaults, and run your first repository diagnosis.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Install repoctl
|
|
7
|
+
|
|
8
|
+
Install repoctl as a development dependency so every teammate and CI job uses the same version.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add -D repoctl
|
|
12
|
+
pnpm exec repo init
|
|
13
|
+
pnpm exec repo doctor
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Continue with [checks](/tasks/checks) or [adopting an existing workspace](/tasks/adopt-existing).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: What is repoctl?
|
|
3
|
+
description: repoctl is the official task-first CLI for initializing, diagnosing, and maintaining pnpm and Turborepo monorepos.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# What is repoctl?
|
|
7
|
+
|
|
8
|
+
repoctl is a task-first CLI for teams that build and maintain pnpm or Turborepo monorepos. It turns repository conventions into repeatable commands for initialization, diagnosis, project creation, checks, reports, and releases.
|
|
9
|
+
|
|
10
|
+
## Start with repoctl
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pnpm add -D repoctl
|
|
14
|
+
pnpm exec repo init
|
|
15
|
+
pnpm exec repo doctor
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Read the [installation guide](/start/install-repoctl) or [command reference](/reference/commands).
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
## tsdown
|
|
27
27
|
|
|
28
|
-
repoctl 当前的通用类库模板是 [tsdown](https://github.com/
|
|
28
|
+
repoctl 当前的通用类库模板是 [tsdown](https://github.com/icelib/repoctl/tree/main/templates/tsdown)
|
|
29
29
|
|
|
30
30
|
:::code-group
|
|
31
31
|
|
|
@@ -45,8 +45,8 @@ export default defineConfig({
|
|
|
45
45
|
|
|
46
46
|
## vite
|
|
47
47
|
|
|
48
|
-
repoctl 的内置模板之一 [vue-lib](https://github.com/
|
|
48
|
+
repoctl 的内置模板之一 [vue-lib](https://github.com/icelib/repoctl/tree/main/templates/vue-lib)
|
|
49
49
|
|
|
50
50
|
你可以在 [`vite` 库模式官方文档](https://vite.dev/guide/build.html#library-mode) 来查看打包 `vue` 组件的方式
|
|
51
51
|
|
|
52
|
-
这些能力已经配置在 [vue-lib](https://github.com/
|
|
52
|
+
这些能力已经配置在 [vue-lib](https://github.com/icelib/repoctl/tree/main/templates/vue-lib) 中
|
|
@@ -14,7 +14,7 @@ outline: [2, 4]
|
|
|
14
14
|
|
|
15
15
|
为此我们需要提升包的质量,具体的手段如下
|
|
16
16
|
|
|
17
|
-
此代码的演变用例见 [examples](https://github.com/
|
|
17
|
+
此代码的演变用例见 [examples](https://github.com/icelib/repoctl/tree/main/templates/vitepress/learn/packages/examples)
|
|
18
18
|
|
|
19
19
|
## 确定包的模块入口点
|
|
20
20
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: repoctl、pnpm 与 Turborepo
|
|
3
|
+
description: 了解 repoctl 如何与 pnpm、Turborepo 组合,构成现代 monorepo 工具链。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# repoctl、pnpm 与 Turborepo
|
|
7
|
+
|
|
8
|
+
pnpm 负责包和依赖,Turborepo 负责任务编排与缓存,repoctl 负责仓库流程、约定、诊断、模板、校验、报告和发布步骤。
|
|
9
|
+
|
|
10
|
+
| 工具 | 主要职责 |
|
|
11
|
+
| --------- | ---------------------- |
|
|
12
|
+
| pnpm | workspace 包与依赖管理 |
|
|
13
|
+
| Turborepo | 任务流水线与缓存 |
|
|
14
|
+
| repoctl | 仓库操作与引导式校验 |
|
|
15
|
+
|
|
16
|
+
阅读[什么是 repoctl](/zh/start/what-is-repoctl)或[安装 repoctl](/zh/start/install-repoctl)。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 安装 repoctl
|
|
3
|
+
description: 在 pnpm monorepo 中安装 repoctl,初始化受管默认值并运行第一次仓库诊断。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 安装 repoctl
|
|
7
|
+
|
|
8
|
+
把 repoctl 安装为开发依赖,让成员和 CI 使用同一个版本。
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add -D repoctl
|
|
12
|
+
pnpm exec repo init
|
|
13
|
+
pnpm exec repo doctor
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
接着阅读[运行校验](/zh/tasks/checks)或[接入已有 workspace](/zh/tasks/adopt-existing)。
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 什么是 repoctl?
|
|
3
|
+
description: repoctl 是面向 pnpm 与 Turborepo monorepo 的官方任务型 CLI,用于初始化、诊断和维护仓库。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 什么是 repoctl?
|
|
7
|
+
|
|
8
|
+
repoctl 把仓库约定变成可重复执行的初始化、诊断、创建、校验、报告和发布命令。
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
pnpm add -D repoctl
|
|
12
|
+
pnpm exec repo init
|
|
13
|
+
pnpm exec repo doctor
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
继续阅读[安装 repoctl](/zh/start/install-repoctl)或[命令速查](/zh/reference/commands)。
|
|
@@ -9,11 +9,11 @@
|
|
|
9
9
|
"homepage": "https://repoctl.icebreaker.top",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "git+https://github.com/
|
|
12
|
+
"url": "git+https://github.com/icelib/repoctl.git",
|
|
13
13
|
"directory": "templates/vue-lib"
|
|
14
14
|
},
|
|
15
15
|
"bugs": {
|
|
16
|
-
"url": "https://github.com/
|
|
16
|
+
"url": "https://github.com/icelib/repoctl/issues"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
19
19
|
"repoctl",
|
|
@@ -59,13 +59,13 @@
|
|
|
59
59
|
"types": "./dist/index.d.ts"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@vitejs/plugin-vue": "^6.0.
|
|
63
|
-
"@vue/test-utils": "^2.5.
|
|
62
|
+
"@vitejs/plugin-vue": "^6.0.9",
|
|
63
|
+
"@vue/test-utils": "^2.5.1",
|
|
64
64
|
"@vue/tsconfig": "^0.9.1",
|
|
65
|
-
"jsdom": "^30.
|
|
65
|
+
"jsdom": "^30.1.1",
|
|
66
66
|
"vite": "^8.3.0",
|
|
67
|
-
"vite-plugin-dts": "^5.1.
|
|
68
|
-
"vue": "^3.5.
|
|
67
|
+
"vite-plugin-dts": "^5.1.1",
|
|
68
|
+
"vue": "^3.5.43",
|
|
69
69
|
"vue-tsc": "^3.3.11"
|
|
70
70
|
}
|
|
71
71
|
}
|