feng3d-cli 0.0.4 → 0.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.
Files changed (62) hide show
  1. package/README.md +54 -65
  2. package/bin/cli.js +58 -0
  3. package/dist/index.js +535 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.cjs +536 -0
  6. package/dist/index.umd.cjs.map +1 -0
  7. package/{dist → lib}/commands/create.d.ts.map +1 -1
  8. package/lib/commands/update.d.ts +13 -0
  9. package/lib/commands/update.d.ts.map +1 -0
  10. package/lib/index.d.ts +9 -0
  11. package/lib/index.d.ts.map +1 -0
  12. package/{dist → lib}/templates.d.ts +19 -19
  13. package/{dist → lib}/templates.d.ts.map +1 -1
  14. package/lib/versions.d.ts +17 -0
  15. package/lib/versions.d.ts.map +1 -0
  16. package/package.json +21 -27
  17. package/templates/.github/workflows/pages.yml +11 -41
  18. package/templates/.github/workflows/publish.yml +2 -8
  19. package/templates/.github/workflows/pull-request.yml +3 -3
  20. package/templates/.github/workflows/upload-oss.yml +100 -0
  21. package/templates/.husky/pre-commit +32 -1
  22. package/templates/gitignore +0 -10
  23. package/templates/package.json +71 -0
  24. package/templates/scripts/postdocs.js +46 -0
  25. package/templates/scripts/postpublish.js +19 -0
  26. package/templates/scripts/prepublish.js +19 -0
  27. package/templates/src/index.ts +6 -0
  28. package/templates/vite.config.js +50 -0
  29. package/dist/cli.d.ts +0 -7
  30. package/dist/cli.d.ts.map +0 -1
  31. package/dist/cli.js +0 -108
  32. package/dist/cli.js.map +0 -1
  33. package/dist/commands/create.js +0 -125
  34. package/dist/commands/create.js.map +0 -1
  35. package/dist/commands/oss.d.ts +0 -11
  36. package/dist/commands/oss.d.ts.map +0 -1
  37. package/dist/commands/oss.js +0 -132
  38. package/dist/commands/oss.js.map +0 -1
  39. package/dist/commands/update.d.ts +0 -30
  40. package/dist/commands/update.d.ts.map +0 -1
  41. package/dist/commands/update.js +0 -482
  42. package/dist/commands/update.js.map +0 -1
  43. package/dist/eslint.d.ts +0 -236
  44. package/dist/eslint.d.ts.map +0 -1
  45. package/dist/eslint.js +0 -119
  46. package/dist/eslint.js.map +0 -1
  47. package/dist/index.d.ts +0 -10
  48. package/dist/index.d.ts.map +0 -1
  49. package/dist/templates.js +0 -151
  50. package/dist/templates.js.map +0 -1
  51. package/dist/types/config.d.ts +0 -111
  52. package/dist/types/config.d.ts.map +0 -1
  53. package/dist/types/config.js +0 -50
  54. package/dist/types/config.js.map +0 -1
  55. package/dist/versions.d.ts +0 -31
  56. package/dist/versions.d.ts.map +0 -1
  57. package/dist/versions.js +0 -60
  58. package/dist/versions.js.map +0 -1
  59. package/schemas/feng3d.schema.json +0 -191
  60. package/templates/feng3d.json +0 -42
  61. package/templates/vitest.config.ts +0 -8
  62. /package/{dist → lib}/commands/create.d.ts +0 -0
@@ -1,50 +0,0 @@
1
- /**
2
- * feng3d 项目配置类型定义
3
- */
4
- /**
5
- * 默认更新配置(全部启用)
6
- */
7
- export const DEFAULT_UPDATE_CONFIG = {
8
- config: true,
9
- eslint: true,
10
- gitignore: true,
11
- cursorrules: true,
12
- publish: true,
13
- pages: true,
14
- pullRequest: true,
15
- typedoc: true,
16
- test: true,
17
- deps: true,
18
- husky: true,
19
- license: true,
20
- vscode: true,
21
- tsconfig: true,
22
- };
23
- /**
24
- * 默认配置
25
- */
26
- export const DEFAULT_CONFIG = {
27
- eslint: {
28
- enabled: true,
29
- ignores: [],
30
- rules: {},
31
- },
32
- vitest: {
33
- enabled: true,
34
- testTimeout: 0,
35
- },
36
- typedoc: {
37
- enabled: true,
38
- outDir: 'public',
39
- },
40
- oss: {
41
- localDir: './public',
42
- ossDir: '',
43
- },
44
- templates: {
45
- examples: true,
46
- test: true,
47
- },
48
- update: DEFAULT_UPDATE_CONFIG,
49
- };
50
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4GH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IAC/C,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,IAAI;IACZ,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAiB;IACxC,MAAM,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;KACZ;IACD,MAAM,EAAE;QACJ,OAAO,EAAE,IAAI;QACb,WAAW,EAAE,CAAC;KACjB;IACD,OAAO,EAAE;QACL,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,QAAQ;KACnB;IACD,GAAG,EAAE;QACD,QAAQ,EAAE,UAAU;QACpB,MAAM,EAAE,EAAE;KACb;IACD,SAAS,EAAE;QACP,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,IAAI;KACb;IACD,MAAM,EAAE,qBAAqB;CAChC,CAAC"}
@@ -1,31 +0,0 @@
1
- /**
2
- * feng3d 项目统一依赖版本
3
- */
4
- export declare const VERSIONS: {
5
- readonly typescript: "5.8.3";
6
- readonly tslib: "^2.8.1";
7
- readonly eslint: "9.26.0";
8
- readonly '@eslint/js': "^9.0.0";
9
- readonly '@typescript-eslint/eslint-plugin': "8.32.1";
10
- readonly '@typescript-eslint/parser': "8.32.1";
11
- readonly 'typescript-eslint': "^8.32.1";
12
- readonly globals: "^14.0.0";
13
- readonly vitest: "^3.1.3";
14
- readonly '@vitest/coverage-v8': "^3.2.4";
15
- readonly 'happy-dom': "^20.0.11";
16
- readonly vite: "^6.3.5";
17
- readonly rimraf: "6.0.1";
18
- readonly 'cross-env': "7.0.3";
19
- readonly typedoc: "^0.28.4";
20
- readonly husky: "^9.1.7";
21
- readonly 'lint-staged': "^15.2.10";
22
- };
23
- /**
24
- * 获取 devDependencies 配置
25
- */
26
- export declare function getDevDependencies(options?: {
27
- includeVitest?: boolean;
28
- includeTypedoc?: boolean;
29
- includeCoverage?: boolean;
30
- }): Record<string, string>;
31
- //# sourceMappingURL=versions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;CA6BX,CAAC;AAEX;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoC9B"}
package/dist/versions.js DELETED
@@ -1,60 +0,0 @@
1
- /**
2
- * feng3d 项目统一依赖版本
3
- */
4
- export const VERSIONS = {
5
- // TypeScript 相关
6
- typescript: '5.8.3',
7
- tslib: '^2.8.1',
8
- // ESLint 相关
9
- eslint: '9.26.0',
10
- '@eslint/js': '^9.0.0',
11
- '@typescript-eslint/eslint-plugin': '8.32.1',
12
- '@typescript-eslint/parser': '8.32.1',
13
- 'typescript-eslint': '^8.32.1',
14
- globals: '^14.0.0',
15
- // 测试相关
16
- vitest: '^3.1.3',
17
- '@vitest/coverage-v8': '^3.2.4',
18
- 'happy-dom': '^20.0.11',
19
- // 构建工具
20
- vite: '^6.3.5',
21
- rimraf: '6.0.1',
22
- 'cross-env': '7.0.3',
23
- // 文档
24
- typedoc: '^0.28.4',
25
- // Git hooks
26
- husky: '^9.1.7',
27
- 'lint-staged': '^15.2.10',
28
- };
29
- /**
30
- * 获取 devDependencies 配置
31
- */
32
- export function getDevDependencies(options = {}) {
33
- const deps = {
34
- '@eslint/js': VERSIONS['@eslint/js'],
35
- '@typescript-eslint/eslint-plugin': VERSIONS['@typescript-eslint/eslint-plugin'],
36
- '@typescript-eslint/parser': VERSIONS['@typescript-eslint/parser'],
37
- 'cross-env': VERSIONS['cross-env'],
38
- eslint: VERSIONS.eslint,
39
- globals: VERSIONS.globals,
40
- rimraf: VERSIONS.rimraf,
41
- tslib: VERSIONS.tslib,
42
- typescript: VERSIONS.typescript,
43
- 'typescript-eslint': VERSIONS['typescript-eslint'],
44
- vite: VERSIONS.vite,
45
- };
46
- if (options.includeVitest !== false) {
47
- deps.vitest = VERSIONS.vitest;
48
- }
49
- if (options.includeCoverage) {
50
- deps['@vitest/coverage-v8'] = VERSIONS['@vitest/coverage-v8'];
51
- }
52
- if (options.includeTypedoc !== false) {
53
- deps.typedoc = VERSIONS.typedoc;
54
- }
55
- // 默认包含 husky 和 lint-staged
56
- deps.husky = VERSIONS.husky;
57
- deps['lint-staged'] = VERSIONS['lint-staged'];
58
- return deps;
59
- }
60
- //# sourceMappingURL=versions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,gBAAgB;IAChB,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,QAAQ;IAEf,YAAY;IACZ,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,QAAQ;IACtB,kCAAkC,EAAE,QAAQ;IAC5C,2BAA2B,EAAE,QAAQ;IACrC,mBAAmB,EAAE,SAAS;IAC9B,OAAO,EAAE,SAAS;IAElB,OAAO;IACP,MAAM,EAAE,QAAQ;IAChB,qBAAqB,EAAE,QAAQ;IAC/B,WAAW,EAAE,UAAU;IAEvB,OAAO;IACP,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,OAAO;IACf,WAAW,EAAE,OAAO;IAEpB,KAAK;IACL,OAAO,EAAE,SAAS;IAElB,YAAY;IACZ,KAAK,EAAE,QAAQ;IACf,aAAa,EAAE,UAAU;CACnB,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAI/B,EAAE;IAEF,MAAM,IAAI,GAA2B;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;QACpC,kCAAkC,EAAE,QAAQ,CAAC,kCAAkC,CAAC;QAChF,2BAA2B,EAAE,QAAQ,CAAC,2BAA2B,CAAC;QAClE,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC;QAClC,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC;QAClD,IAAI,EAAE,QAAQ,CAAC,IAAI;KACtB,CAAC;IAEF,IAAI,OAAO,CAAC,aAAa,KAAK,KAAK,EACnC,CAAC;QACG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,CAAC,eAAe,EAC3B,CAAC;QACG,IAAI,CAAC,qBAAqB,CAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EACpC,CAAC;QACG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;IACpC,CAAC;IAED,2BAA2B;IAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE9C,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -1,191 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "feng3d.schema.json",
4
- "title": "feng3d 项目配置",
5
- "description": "feng3d 项目配置文件,用于自定义项目规范和 CLI 行为",
6
- "type": "object",
7
- "properties": {
8
- "$schema": {
9
- "type": "string",
10
- "description": "JSON Schema 引用"
11
- },
12
- "name": {
13
- "type": "string",
14
- "description": "项目名称"
15
- },
16
- "eslint": {
17
- "type": "object",
18
- "description": "ESLint 配置选项",
19
- "properties": {
20
- "enabled": {
21
- "type": "boolean",
22
- "description": "是否启用 ESLint",
23
- "default": true
24
- },
25
- "ignores": {
26
- "type": "array",
27
- "items": {
28
- "type": "string"
29
- },
30
- "description": "额外需要忽略的目录",
31
- "default": []
32
- },
33
- "rules": {
34
- "type": "object",
35
- "description": "额外的规则覆盖",
36
- "additionalProperties": true,
37
- "default": {}
38
- }
39
- },
40
- "additionalProperties": false
41
- },
42
- "vitest": {
43
- "type": "object",
44
- "description": "Vitest 测试配置选项",
45
- "properties": {
46
- "enabled": {
47
- "type": "boolean",
48
- "description": "是否启用 vitest",
49
- "default": true
50
- },
51
- "testTimeout": {
52
- "type": "number",
53
- "description": "测试超时时间(毫秒,0 表示无限制)",
54
- "default": 0,
55
- "minimum": 0
56
- }
57
- },
58
- "additionalProperties": false
59
- },
60
- "typedoc": {
61
- "type": "object",
62
- "description": "TypeDoc 文档配置选项",
63
- "properties": {
64
- "enabled": {
65
- "type": "boolean",
66
- "description": "是否启用 typedoc",
67
- "default": true
68
- },
69
- "outDir": {
70
- "type": "string",
71
- "description": "文档输出目录",
72
- "default": "public/docs"
73
- }
74
- },
75
- "additionalProperties": false
76
- },
77
- "oss": {
78
- "type": "object",
79
- "description": "OSS 上传配置",
80
- "properties": {
81
- "localDir": {
82
- "type": "string",
83
- "description": "本地目录",
84
- "default": "./public"
85
- },
86
- "ossDir": {
87
- "type": "string",
88
- "description": "OSS 目录(默认使用 package.json 的 name)",
89
- "default": ""
90
- }
91
- },
92
- "additionalProperties": false
93
- },
94
- "templates": {
95
- "type": "object",
96
- "description": "项目模板选项",
97
- "properties": {
98
- "examples": {
99
- "type": "boolean",
100
- "description": "是否创建示例目录",
101
- "default": true
102
- },
103
- "test": {
104
- "type": "boolean",
105
- "description": "是否创建测试目录",
106
- "default": true
107
- }
108
- },
109
- "additionalProperties": false
110
- },
111
- "update": {
112
- "type": "object",
113
- "description": "更新配置(指定 feng3d-cli update 时默认更新哪些项目)",
114
- "properties": {
115
- "config": {
116
- "type": "boolean",
117
- "description": "是否更新 feng3d.json 配置",
118
- "default": true
119
- },
120
- "eslint": {
121
- "type": "boolean",
122
- "description": "是否更新 ESLint 配置",
123
- "default": true
124
- },
125
- "gitignore": {
126
- "type": "boolean",
127
- "description": "是否更新 .gitignore",
128
- "default": true
129
- },
130
- "cursorrules": {
131
- "type": "boolean",
132
- "description": "是否更新 .cursorrules",
133
- "default": true
134
- },
135
- "publish": {
136
- "type": "boolean",
137
- "description": "是否更新 npm publish workflow",
138
- "default": true
139
- },
140
- "pages": {
141
- "type": "boolean",
142
- "description": "是否更新 GitHub Pages workflow",
143
- "default": true
144
- },
145
- "pullRequest": {
146
- "type": "boolean",
147
- "description": "是否更新 Pull Request CI workflow",
148
- "default": true
149
- },
150
- "typedoc": {
151
- "type": "boolean",
152
- "description": "是否更新 typedoc.json",
153
- "default": true
154
- },
155
- "test": {
156
- "type": "boolean",
157
- "description": "是否更新 test/_.test.ts",
158
- "default": true
159
- },
160
- "deps": {
161
- "type": "boolean",
162
- "description": "是否更新依赖版本",
163
- "default": true
164
- },
165
- "husky": {
166
- "type": "boolean",
167
- "description": "是否更新 husky pre-commit hook",
168
- "default": true
169
- },
170
- "license": {
171
- "type": "boolean",
172
- "description": "是否更新 LICENSE 文件",
173
- "default": true
174
- },
175
- "vscode": {
176
- "type": "boolean",
177
- "description": "是否更新 .vscode/settings.json",
178
- "default": true
179
- },
180
- "tsconfig": {
181
- "type": "boolean",
182
- "description": "是否更新 tsconfig.json",
183
- "default": true
184
- }
185
- },
186
- "additionalProperties": false
187
- }
188
- },
189
- "additionalProperties": false
190
- }
191
-
@@ -1,42 +0,0 @@
1
- {
2
- "$schema": "./node_modules/feng3d-cli/schemas/feng3d.schema.json",
3
- "name": "{{name}}",
4
- "eslint": {
5
- "enabled": true,
6
- "ignores": [],
7
- "rules": {}
8
- },
9
- "vitest": {
10
- "enabled": true,
11
- "testTimeout": 0
12
- },
13
- "typedoc": {
14
- "enabled": true,
15
- "outDir": "public"
16
- },
17
- "oss": {
18
- "localDir": "./public",
19
- "ossDir": ""
20
- },
21
- "templates": {
22
- "examples": true,
23
- "test": true
24
- },
25
- "update": {
26
- "config": true,
27
- "eslint": true,
28
- "gitignore": true,
29
- "cursorrules": true,
30
- "publish": true,
31
- "pages": true,
32
- "pullRequest": true,
33
- "typedoc": true,
34
- "test": true,
35
- "deps": true,
36
- "husky": true,
37
- "license": true,
38
- "vscode": true,
39
- "tsconfig": true
40
- }
41
- }
42
-
@@ -1,8 +0,0 @@
1
- import { defineConfig } from 'vitest/config';
2
-
3
- export default defineConfig({
4
- test: {
5
- testTimeout: 0,
6
- },
7
- });
8
-
File without changes