mvframe 1.0.5 → 1.0.6
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.cn.md +4 -1
- package/README.md +4 -1
- package/dist/vendor.js +1 -1
- package/package.json +1 -1
- package/scripts/scaffold-app.js +78 -5
package/README.cn.md
CHANGED
|
@@ -163,7 +163,7 @@ yarn build
|
|
|
163
163
|
|
|
164
164
|
## 命令行:项目目录雏形(推荐)
|
|
165
165
|
|
|
166
|
-
在**空目录或已有 Vite 工程根目录**执行,生成 `src/views`、`src/component`、`src/api`、`src/assets/img`、`src/assets/style`、`src/router`、`src/pinia/chip`、`src/config` 及示例 `main.js` / `App.vue`(已 `app.use(mvframe, …)` 挂好路由、Pinia `storeChips`、config)。若不存在则附带 `index.html` 与 `vite.config.js`。
|
|
166
|
+
在**空目录或已有 Vite 工程根目录**执行,生成 `src/views`、`src/component`、`src/api`、`src/assets/img`、`src/assets/style`、`src/router`、`src/pinia/chip`、`src/config` 及示例 `main.js` / `App.vue`(已 `app.use(mvframe, …)` 挂好路由、Pinia `storeChips`、config)。若不存在则附带 `index.html` 与 `vite.config.js`。会**合并** `package.json` 的 `dependencies` / `devDependencies`(与 Vite 模板一致;**同名包保留你原有版本**),最后请执行 **`yarn install`**;加 `--no-package-json` 可不改动 `package.json`。
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
169
|
cd /path/to/your-app
|
|
@@ -171,6 +171,9 @@ node /path/to/mvframe/scripts/scaffold-app.js
|
|
|
171
171
|
# 覆盖已有同名文件:
|
|
172
172
|
node /path/to/mvframe/scripts/scaffold-app.js --force
|
|
173
173
|
|
|
174
|
+
# 不修改 package.json(仅生成源码与配置):
|
|
175
|
+
node /path/to/mvframe/scripts/scaffold-app.js --no-package-json
|
|
176
|
+
|
|
174
177
|
# 安装 mvframe 后:
|
|
175
178
|
yarn exec mvframe-init-app
|
|
176
179
|
# 或:npx mvframe-init-app
|
package/README.md
CHANGED
|
@@ -163,13 +163,16 @@ Production uses **library mode** with entry `src/index.js` and obfuscation-relat
|
|
|
163
163
|
|
|
164
164
|
## CLI: project skeleton
|
|
165
165
|
|
|
166
|
-
From an **empty folder or existing Vite root**, generates `src/views`, `src/component`, `src/api`, `src/assets/img`, `src/assets/style`, `src/router`, `src/pinia/chip`, `src/config`, plus starter `main.js` / `App.vue` with `app.use(mvframe, …)` (routes, Pinia `storeChips`, config). Adds `index.html` and `vite.config.js` only if missing (use `--force` to overwrite).
|
|
166
|
+
From an **empty folder or existing Vite root**, generates `src/views`, `src/component`, `src/api`, `src/assets/img`, `src/assets/style`, `src/router`, `src/pinia/chip`, `src/config`, plus starter `main.js` / `App.vue` with `app.use(mvframe, …)` (routes, Pinia `storeChips`, config). Adds `index.html` and `vite.config.js` only if missing (use `--force` to overwrite). **Merges** `dependencies` / `devDependencies` into `package.json` (existing versions win for shared keys); use `--no-package-json` to skip. Then run **`yarn install`**.
|
|
167
167
|
|
|
168
168
|
```bash
|
|
169
169
|
cd /path/to/your-app
|
|
170
170
|
node /path/to/mvframe/scripts/scaffold-app.js
|
|
171
171
|
node /path/to/mvframe/scripts/scaffold-app.js --force
|
|
172
172
|
|
|
173
|
+
# Skip package.json (only scaffold sources + Vite config):
|
|
174
|
+
node /path/to/mvframe/scripts/scaffold-app.js --no-package-json
|
|
175
|
+
|
|
173
176
|
yarn exec mvframe-init-app
|
|
174
177
|
# or: npx mvframe-init-app
|
|
175
178
|
```
|
package/dist/vendor.js
CHANGED
|
@@ -63,7 +63,7 @@ const _ = /* @__PURE__ */ Object.assign({ "../component/BtnGroup/index.vue": v,
|
|
|
63
63
|
}, w = {
|
|
64
64
|
name: "Matt Avias Frame",
|
|
65
65
|
copyright: "©2026",
|
|
66
|
-
version: "1.0.
|
|
66
|
+
version: "1.0.6",
|
|
67
67
|
author: "Matt Avias",
|
|
68
68
|
date: "2026-02-26",
|
|
69
69
|
/** Table 等表格默认;业务在 app.use(mvframe, { config }) 里覆盖 */
|
package/package.json
CHANGED
package/scripts/scaffold-app.js
CHANGED
|
@@ -7,12 +7,15 @@
|
|
|
7
7
|
* yarn exec mvframe-init-app
|
|
8
8
|
*
|
|
9
9
|
* 环境变量:MVFRAME_SCAFFOLD_TARGET=/path/to/project
|
|
10
|
+
*
|
|
11
|
+
* 选项:--no-package-json 不读不写 package.json(仅生成源码与 Vite 配置)
|
|
10
12
|
*/
|
|
11
13
|
|
|
12
14
|
const fs = require("fs");
|
|
13
15
|
const path = require("path");
|
|
14
16
|
|
|
15
17
|
const FORCE = process.argv.includes("--force");
|
|
18
|
+
const NO_PKG = process.argv.includes("--no-package-json");
|
|
16
19
|
const argPath = process.argv.find(
|
|
17
20
|
(a, i) => i >= 2 && a !== "--force" && !a.startsWith("--"),
|
|
18
21
|
);
|
|
@@ -31,6 +34,67 @@ function write(rel, content) {
|
|
|
31
34
|
console.log("[mvframe-init] 写入", rel);
|
|
32
35
|
}
|
|
33
36
|
|
|
37
|
+
/** 与 main.js / vite.config 模板一致;版本号与 mvframe 本仓库对齐思路,可随发布调整 */
|
|
38
|
+
const SCAFFOLD_DEPENDENCIES = {
|
|
39
|
+
vue: "^3.5.0",
|
|
40
|
+
"vue-router": "^4.6.0",
|
|
41
|
+
pinia: "^3.0.0",
|
|
42
|
+
mvframe: "^1.0.0",
|
|
43
|
+
"element-plus": "^2.13.0",
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const SCAFFOLD_DEV_DEPENDENCIES = {
|
|
47
|
+
vite: "^6.0.0",
|
|
48
|
+
"@vitejs/plugin-vue": "^5.2.0",
|
|
49
|
+
"sass-embedded": "^1.97.0",
|
|
50
|
+
"unplugin-auto-import": "^0.18.2",
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* 合并 package.json:保留原有字段与其它依赖;仅补足脚手架所需包。
|
|
55
|
+
* 同名依赖以目标项目已有版本为准({ ...建议, ...已有 })。
|
|
56
|
+
*/
|
|
57
|
+
function mergePackageJson(projectRoot) {
|
|
58
|
+
const pkgPath = path.join(projectRoot, "package.json");
|
|
59
|
+
let pkg;
|
|
60
|
+
|
|
61
|
+
if (fs.existsSync(pkgPath)) {
|
|
62
|
+
try {
|
|
63
|
+
pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
64
|
+
} catch (e) {
|
|
65
|
+
console.warn("[mvframe-init] package.json 解析失败,跳过合并:", e.message);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
pkg = {
|
|
70
|
+
name: path.basename(projectRoot).replace(/[^a-z0-9-]/gi, "-").toLowerCase() || "mvframe-app",
|
|
71
|
+
version: "0.1.0",
|
|
72
|
+
private: true,
|
|
73
|
+
type: "module",
|
|
74
|
+
scripts: {
|
|
75
|
+
dev: "vite",
|
|
76
|
+
build: "vite build",
|
|
77
|
+
preview: "vite preview",
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
console.log("[mvframe-init] 新建 package.json");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
pkg.dependencies = {
|
|
84
|
+
...SCAFFOLD_DEPENDENCIES,
|
|
85
|
+
...(pkg.dependencies && typeof pkg.dependencies === "object" ? pkg.dependencies : {}),
|
|
86
|
+
};
|
|
87
|
+
pkg.devDependencies = {
|
|
88
|
+
...SCAFFOLD_DEV_DEPENDENCIES,
|
|
89
|
+
...(pkg.devDependencies && typeof pkg.devDependencies === "object"
|
|
90
|
+
? pkg.devDependencies
|
|
91
|
+
: {}),
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
fs.writeFileSync(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, "utf8");
|
|
95
|
+
console.log("[mvframe-init] 已合并 package.json 的 dependencies / devDependencies(已有版本优先)");
|
|
96
|
+
}
|
|
97
|
+
|
|
34
98
|
function main() {
|
|
35
99
|
if (!fs.existsSync(target)) {
|
|
36
100
|
console.error("[mvframe-init] 目录不存在:", target);
|
|
@@ -351,14 +415,17 @@ export default defineConfig({
|
|
|
351
415
|
"MVFRAME-SCAFFOLD.md",
|
|
352
416
|
`# MVFrame 雏形已生成
|
|
353
417
|
|
|
354
|
-
##
|
|
418
|
+
## 依赖
|
|
419
|
+
|
|
420
|
+
初始化脚本会**合并**(不整文件覆盖)\`package.json\` 的 \`dependencies\` / \`devDependencies\`:**已声明的包保留你的版本号**,仅补上缺失项。然后执行:
|
|
355
421
|
|
|
356
422
|
\`\`\`bash
|
|
357
|
-
yarn
|
|
358
|
-
yarn add -D vite @vitejs/plugin-vue sass-embedded unplugin-auto-import
|
|
423
|
+
yarn install
|
|
359
424
|
\`\`\`
|
|
360
425
|
|
|
361
|
-
|
|
426
|
+
若需跳过对 \`package.json\` 的修改:\`node scripts/scaffold-app.js --no-package-json\`。
|
|
427
|
+
|
|
428
|
+
自动生成的 \`vite.config.js\` 已包含 \`unplugin-auto-import\`;\`dts: true\` 时类型默认写在项目根 \`auto-imports.d.ts\`。
|
|
362
429
|
|
|
363
430
|
## 样式
|
|
364
431
|
|
|
@@ -388,7 +455,13 @@ yarn exec mvframe-install-cursor-skill
|
|
|
388
455
|
`,
|
|
389
456
|
);
|
|
390
457
|
|
|
391
|
-
|
|
458
|
+
if (!NO_PKG) {
|
|
459
|
+
mergePackageJson(target);
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
console.log(
|
|
463
|
+
"[mvframe-init] 完成。请阅读 MVFRAME-SCAFFOLD.md 并在项目根执行 yarn install(或 npm install)。",
|
|
464
|
+
);
|
|
392
465
|
}
|
|
393
466
|
|
|
394
467
|
main();
|