@deot/docs-cli 1.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/README.md ADDED
@@ -0,0 +1,94 @@
1
+ # @deot/docs-cli
2
+
3
+ `@deot/docs-cli` 提供 `doc` 命令,用于启动文档开发服务、生成静态站点或预览 production 模式下的文档 workspace。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ pnpm add -D @deot/docs-cli
9
+ ```
10
+
11
+ ## 快速开始
12
+
13
+ workspace 必须位于当前项目内,并在自身根部包含 `index.html`。未传参数时
14
+ 优先使用 `site/index.html`,不存在时回退到项目根 `index.html`;入口文件本身
15
+ 不能是符号链接:
16
+
17
+ ```bash
18
+ pnpm exec doc dev
19
+ ```
20
+
21
+ 指定其他 workspace:
22
+
23
+ ```bash
24
+ pnpm exec doc dev --workspace docs
25
+ ```
26
+
27
+ 也可以将项目根作为完整 workspace:
28
+
29
+ ```bash
30
+ pnpm exec doc dev --workspace .
31
+ ```
32
+
33
+ ## 命令
34
+
35
+ ### `doc dev`
36
+
37
+ 启动 Vite 开发服务。该模式会向 HTML 注入 `window.__DOCS_RUNTIME__`,提供本地资源寻址、`/__docs/events` SSE、已加载资源的更新通知,以及 `PUT /__docs/page` 页面保存入口。保存规则见 [`@deot/docs-dever`](../dever/README.md)。
38
+
39
+ ```bash
40
+ pnpm exec doc dev --workspace site
41
+ ```
42
+
43
+ ### `doc build`
44
+
45
+ 以 workspace 的 `index.html` 为入口执行一次 production 构建,并将 workspace 内的静态资源(含 `.page.json`)复制到输出目录。构建完成后进程退出,不启用 watcher 或 SSE。
46
+
47
+ ```bash
48
+ pnpm exec doc build --workspace site --out-dir dist
49
+ ```
50
+
51
+ ### `doc preview`
52
+
53
+ 直接以 production runtime 预览 workspace,不生成新的构建产物。默认端口为 `4173`,不会注入开发 runtime,也不会启用 HMR 或 SSE。
54
+
55
+ ```bash
56
+ pnpm exec doc preview --workspace site
57
+ ```
58
+
59
+ ## 选项
60
+
61
+ | 选项 | 适用命令 | 说明 |
62
+ | --- | --- | --- |
63
+ | `--workspace <path>` | 全部 | 项目内的 workspace;未指定时依次探测 `site` 和项目根。 |
64
+ | `--out-dir <path>` | `build` | 输出目录,默认 `dist`。 |
65
+ | `--host <host>` | `preview` | 监听地址,默认 `0.0.0.0`。 |
66
+ | `--port <port>` | `preview` | 监听端口,默认 `4173`。 |
67
+ | `--dry-run [boolean]` | 全部 | 只输出将要运行的模式,不启动服务或执行构建。 |
68
+ | `--package-name <name>` | 全部 | 原样传给运行层的包名上下文;当前核心模式不读取。 |
69
+ | `--custom <value>` | 全部 | 原样传给运行层的扩展信息;当前核心模式不读取。 |
70
+
71
+ `build` 与 `preview` 是互斥模式,不能在同一次运行中同时启用。
72
+
73
+ ## 配置查找
74
+
75
+ CLI 会从当前工作目录按以下顺序查找第一个存在的配置文件,并与内置文档插件配置合并:
76
+
77
+ 1. `z.doc.config.js` / `z.doc.config.ts`
78
+ 2. `doc.config.js` / `doc.config.ts`
79
+ 3. `vite.config.js` / `vite.config.ts`
80
+
81
+ 未找到时使用 `@deot/docs-dever` 自带的 `shared.config.ts`。
82
+
83
+ ## 仓库内验证
84
+
85
+ 在仓库根目录执行:
86
+
87
+ ```bash
88
+ npm run test -- --package-name cli
89
+ npm run build -- --package-name cli
90
+ ```
91
+
92
+ ## 许可证
93
+
94
+ MIT
package/bin/cli.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import '../dist/index.js';
package/dist/index.cjs ADDED
@@ -0,0 +1,60 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region \0rolldown/runtime.js
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: ((k) => from[k]).bind(null, key),
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
20
+ value: mod,
21
+ enumerable: true
22
+ }) : target, mod));
23
+ //#endregion
24
+ let commander = require("commander");
25
+ let node_module = require("node:module");
26
+ let _deot_docs_dever = require("@deot/docs-dever");
27
+ _deot_docs_dever = __toESM(_deot_docs_dever, 1);
28
+ //#region packages/cli/src/index.ts
29
+ var require$1 = (0, node_module.createRequire)({}.url);
30
+ var defaultOptions = [new commander.Option("--dry-run [boolean]", "Dry Run").argParser((value) => {
31
+ if (value === "true") return true;
32
+ if (value === "false") return false;
33
+ throw new commander.InvalidArgumentError("Expected true or false");
34
+ }), new commander.Option("--custom <string>", "Any Custom Info")];
35
+ var addOptions = (ctx, action) => {
36
+ defaultOptions.forEach((i) => ctx.addOption(i));
37
+ ctx.action(action);
38
+ };
39
+ commander.program.version(require$1("../package").version);
40
+ commander.program.usage("<cmd>");
41
+ addOptions(commander.program.command("dev").option("--workspace <string>", "Select Workspace").option("--package-name <string>", "Select PackageName").description("development mode"), _deot_docs_dever.run);
42
+ addOptions(commander.program.command("build").option("--workspace <string>", "Select Workspace").option("--out-dir <string>", "Select Build OutDir").option("--package-name <string>", "Select PackageName").description("production mode"), (options) => _deot_docs_dever.run({
43
+ ...options,
44
+ build: true
45
+ }));
46
+ addOptions(commander.program.command("preview").option("--workspace <string>", "Select Workspace").option("--host <string>", "Select Host").option("--port <number>", "Select Port", (value) => Number(value)).option("--package-name <string>", "Select PackageName").description("preview workspace in production mode"), (options) => _deot_docs_dever.run({
47
+ ...options,
48
+ preview: true
49
+ }));
50
+ var main = async () => {
51
+ try {
52
+ await commander.program.parseAsync(process.argv);
53
+ if (!commander.program.args.length) commander.program.help();
54
+ } catch (reason) {
55
+ process.exitCode = 1;
56
+ console.error(reason instanceof Error ? reason.message : reason);
57
+ }
58
+ };
59
+ main();
60
+ //#endregion
@@ -0,0 +1 @@
1
+ export { }
package/dist/index.js ADDED
@@ -0,0 +1,36 @@
1
+ import { InvalidArgumentError, Option, program } from "commander";
2
+ import { createRequire } from "node:module";
3
+ import * as Dever from "@deot/docs-dever";
4
+ //#region packages/cli/src/index.ts
5
+ var require = createRequire(import.meta.url);
6
+ var defaultOptions = [new Option("--dry-run [boolean]", "Dry Run").argParser((value) => {
7
+ if (value === "true") return true;
8
+ if (value === "false") return false;
9
+ throw new InvalidArgumentError("Expected true or false");
10
+ }), new Option("--custom <string>", "Any Custom Info")];
11
+ var addOptions = (ctx, action) => {
12
+ defaultOptions.forEach((i) => ctx.addOption(i));
13
+ ctx.action(action);
14
+ };
15
+ program.version(require("../package").version);
16
+ program.usage("<cmd>");
17
+ addOptions(program.command("dev").option("--workspace <string>", "Select Workspace").option("--package-name <string>", "Select PackageName").description("development mode"), Dever.run);
18
+ addOptions(program.command("build").option("--workspace <string>", "Select Workspace").option("--out-dir <string>", "Select Build OutDir").option("--package-name <string>", "Select PackageName").description("production mode"), (options) => Dever.run({
19
+ ...options,
20
+ build: true
21
+ }));
22
+ addOptions(program.command("preview").option("--workspace <string>", "Select Workspace").option("--host <string>", "Select Host").option("--port <number>", "Select Port", (value) => Number(value)).option("--package-name <string>", "Select PackageName").description("preview workspace in production mode"), (options) => Dever.run({
23
+ ...options,
24
+ preview: true
25
+ }));
26
+ var main = async () => {
27
+ try {
28
+ await program.parseAsync(process.argv);
29
+ if (!program.args.length) program.help();
30
+ } catch (reason) {
31
+ process.exitCode = 1;
32
+ console.error(reason instanceof Error ? reason.message : reason);
33
+ }
34
+ };
35
+ main();
36
+ //#endregion
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@deot/docs-cli",
3
+ "version": "1.0.1",
4
+ "main": "dist/index.js",
5
+ "types": "dist/index.d.ts",
6
+ "type": "module",
7
+ "files": [
8
+ "dist",
9
+ "config"
10
+ ],
11
+ "license": "MIT",
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "dependencies": {
16
+ "@deot/docs-dever": "^1.0.1",
17
+ "commander": "^15.0.0"
18
+ },
19
+ "devDependencies": {
20
+ "cross-env": "^10.0.1",
21
+ "@deot/dev-test": "^2.9.13"
22
+ },
23
+ "bin": {
24
+ "doc": "bin/cli.js"
25
+ }
26
+ }