create-next-imagicma 0.0.4 → 0.0.5
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 +1 -0
- package/bin/create-next-imagicma.mjs +19 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ node ./create-next-imagicma/bin/create-next-imagicma.mjs demo-5001 --port 5001
|
|
|
20
20
|
|
|
21
21
|
- `--port <number>`:设置新项目 `dev/start` 的默认端口(写入 `next ... -p <port>`)。
|
|
22
22
|
- `--theme <name>`:设置新项目默认主题(可选:`quadratic`、`nomad`、`honey`、`zen-garden`、`highlighter`)。
|
|
23
|
+
- `-v, --version`:显示当前脚手架版本号。
|
|
23
24
|
- 运行时仍可覆盖,例如:`pnpm dev -- -p 6001` 或 `PORT=6001 pnpm start`
|
|
24
25
|
|
|
25
26
|
## 依赖安装策略
|
|
@@ -16,6 +16,14 @@ const THEME_STYLES = [
|
|
|
16
16
|
"highlighter",
|
|
17
17
|
];
|
|
18
18
|
|
|
19
|
+
const PACKAGE_JSON_PATH = path.resolve(__dirname, "..", "package.json");
|
|
20
|
+
|
|
21
|
+
async function getVersion() {
|
|
22
|
+
const raw = await fs.readFile(PACKAGE_JSON_PATH, "utf8");
|
|
23
|
+
const pkg = JSON.parse(raw);
|
|
24
|
+
return pkg.version ?? "0.0.0";
|
|
25
|
+
}
|
|
26
|
+
|
|
19
27
|
function printHelp() {
|
|
20
28
|
console.log(`create-next-imagicma <project-dir> [--port <1-65535>] [--theme <name>]
|
|
21
29
|
|
|
@@ -23,6 +31,7 @@ function printHelp() {
|
|
|
23
31
|
--port <number> 设置新项目 dev/start 的默认端口(next ... -p)
|
|
24
32
|
--theme <name> 设置默认主题(可选:${THEME_STYLES.join(", ")})
|
|
25
33
|
-h, --help 显示帮助
|
|
34
|
+
-v, --version 显示版本号
|
|
26
35
|
`);
|
|
27
36
|
}
|
|
28
37
|
|
|
@@ -75,6 +84,10 @@ function parseArgs(argv) {
|
|
|
75
84
|
return { help: true };
|
|
76
85
|
}
|
|
77
86
|
|
|
87
|
+
if (arg === "-v" || arg === "--version") {
|
|
88
|
+
return { version: true };
|
|
89
|
+
}
|
|
90
|
+
|
|
78
91
|
if (arg === "--port") {
|
|
79
92
|
const value = argv[i + 1];
|
|
80
93
|
if (!value) {
|
|
@@ -121,7 +134,7 @@ function parseArgs(argv) {
|
|
|
121
134
|
throw new Error("缺少 <project-dir>:请指定要创建的项目目录名/路径");
|
|
122
135
|
}
|
|
123
136
|
|
|
124
|
-
return { projectDir, port, theme, help: false };
|
|
137
|
+
return { projectDir, port, theme, help: false, version: false };
|
|
125
138
|
}
|
|
126
139
|
|
|
127
140
|
async function ensureTargetDirReady(targetDir) {
|
|
@@ -286,6 +299,11 @@ async function main() {
|
|
|
286
299
|
printHelp();
|
|
287
300
|
return;
|
|
288
301
|
}
|
|
302
|
+
if (parsed.version) {
|
|
303
|
+
const version = await getVersion();
|
|
304
|
+
console.log(version);
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
289
307
|
|
|
290
308
|
const { projectDir, port, theme } = parsed;
|
|
291
309
|
const targetDir = path.resolve(process.cwd(), projectDir);
|