@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 +94 -0
- package/bin/cli.js +3 -0
- package/dist/index.cjs +60 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +36 -0
- package/package.json +26 -0
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
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
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
+
}
|