feng3d-cli 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.
Files changed (50) hide show
  1. package/README.md +0 -15
  2. package/bin/cli.js +135 -0
  3. package/dist/index.js +792 -9
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.umd.cjs +792 -0
  6. package/dist/index.umd.cjs.map +1 -0
  7. package/{dist → lib}/commands/create.d.ts.map +1 -1
  8. package/{dist → lib}/commands/update.d.ts +1 -0
  9. package/{dist → lib}/commands/update.d.ts.map +1 -1
  10. package/{dist → lib}/index.d.ts +2 -1
  11. package/lib/index.d.ts.map +1 -0
  12. package/{dist → lib}/templates.d.ts +10 -12
  13. package/{dist → lib}/templates.d.ts.map +1 -1
  14. package/{dist → lib}/types/config.d.ts +2 -0
  15. package/{dist → lib}/types/config.d.ts.map +1 -1
  16. package/package.json +20 -22
  17. package/schemas/feng3d.schema.json +5 -0
  18. package/templates/.github/workflows/publish.yml +2 -8
  19. package/templates/feng3d.json +2 -1
  20. package/templates/gitignore +3 -0
  21. package/templates/scripts/postpublish.js +19 -0
  22. package/templates/scripts/prepublish.js +19 -0
  23. package/templates/vite.config.js +49 -0
  24. package/dist/cli.d.ts +0 -7
  25. package/dist/cli.d.ts.map +0 -1
  26. package/dist/cli.js +0 -108
  27. package/dist/cli.js.map +0 -1
  28. package/dist/commands/create.js +0 -125
  29. package/dist/commands/create.js.map +0 -1
  30. package/dist/commands/oss.js +0 -132
  31. package/dist/commands/oss.js.map +0 -1
  32. package/dist/commands/update.js +0 -482
  33. package/dist/commands/update.js.map +0 -1
  34. package/dist/eslint.d.ts +0 -236
  35. package/dist/eslint.d.ts.map +0 -1
  36. package/dist/eslint.js +0 -119
  37. package/dist/eslint.js.map +0 -1
  38. package/dist/index.d.ts.map +0 -1
  39. package/dist/templates.js +0 -151
  40. package/dist/templates.js.map +0 -1
  41. package/dist/types/config.js +0 -50
  42. package/dist/types/config.js.map +0 -1
  43. package/dist/versions.js +0 -60
  44. package/dist/versions.js.map +0 -1
  45. package/templates/vitest.config.ts +0 -8
  46. /package/{dist → lib}/commands/create.d.ts +0 -0
  47. /package/{dist → lib}/commands/oss.d.ts +0 -0
  48. /package/{dist → lib}/commands/oss.d.ts.map +0 -0
  49. /package/{dist → lib}/versions.d.ts +0 -0
  50. /package/{dist → lib}/versions.d.ts.map +0 -0
package/dist/cli.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,125 +0,0 @@
1
- /**
2
- * 创建新项目命令
3
- */
4
- import fs from 'fs-extra';
5
- import path from 'path';
6
- import chalk from 'chalk';
7
- import { getDevDependencies } from '../versions.js';
8
- import { getGitignoreTemplate, getCursorrrulesTemplate, getTsconfigTemplate, getVitestConfigTemplate, getTypedocConfig, getPublishWorkflowTemplate, getFeng3dConfigTemplate, } from '../templates.js';
9
- import { createEslintConfigFile } from './update.js';
10
- /**
11
- * 创建符合 feng3d 规范的新项目
12
- */
13
- export async function createProject(name, options) {
14
- const projectDir = path.join(options.directory, name);
15
- // 检查目录是否已存在
16
- if (await fs.pathExists(projectDir)) {
17
- throw new Error(`目录 ${projectDir} 已存在`);
18
- }
19
- // 创建项目目录
20
- await fs.ensureDir(projectDir);
21
- await fs.ensureDir(path.join(projectDir, 'src'));
22
- console.log(chalk.gray(` 创建目录: ${projectDir}`));
23
- // 创建 package.json
24
- const packageJson = createPackageJson(name, options);
25
- await fs.writeJson(path.join(projectDir, 'package.json'), packageJson, { spaces: 4 });
26
- console.log(chalk.gray(' 创建: package.json'));
27
- // 创建 tsconfig.json
28
- await fs.writeJson(path.join(projectDir, 'tsconfig.json'), getTsconfigTemplate(), { spaces: 4 });
29
- console.log(chalk.gray(' 创建: tsconfig.json'));
30
- // 创建 .gitignore
31
- await fs.writeFile(path.join(projectDir, '.gitignore'), getGitignoreTemplate());
32
- console.log(chalk.gray(' 创建: .gitignore'));
33
- // 创建 .cursorrules
34
- await fs.writeFile(path.join(projectDir, '.cursorrules'), getCursorrrulesTemplate());
35
- console.log(chalk.gray(' 创建: .cursorrules'));
36
- // 创建 eslint.config.js
37
- await createEslintConfigFile(projectDir);
38
- console.log(chalk.gray(' 创建: eslint.config.js'));
39
- // 创建 vitest.config.ts
40
- if (options.vitest !== false) {
41
- await fs.writeFile(path.join(projectDir, 'vitest.config.ts'), getVitestConfigTemplate());
42
- console.log(chalk.gray(' 创建: vitest.config.ts'));
43
- }
44
- // 创建 typedoc.json
45
- const typedocConfig = getTypedocConfig({ repoName: name });
46
- await fs.writeJson(path.join(projectDir, 'typedoc.json'), typedocConfig, { spaces: 4 });
47
- console.log(chalk.gray(' 创建: typedoc.json'));
48
- // 创建 src/index.ts
49
- await fs.writeFile(path.join(projectDir, 'src/index.ts'), `/**\n * @feng3d/${name}\n */\n\nexport {};\n`);
50
- console.log(chalk.gray(' 创建: src/index.ts'));
51
- // 创建 README.md
52
- await fs.writeFile(path.join(projectDir, 'README.md'), `# @feng3d/${name}\n`);
53
- console.log(chalk.gray(' 创建: README.md'));
54
- // 创建示例目录
55
- if (options.examples !== false) {
56
- await fs.ensureDir(path.join(projectDir, 'examples'));
57
- console.log(chalk.gray(' 创建: examples/'));
58
- }
59
- // 创建测试目录
60
- if (options.vitest !== false) {
61
- await fs.ensureDir(path.join(projectDir, 'test'));
62
- console.log(chalk.gray(' 创建: test/'));
63
- }
64
- // 创建 .github/workflows 目录和 publish.yml
65
- await fs.ensureDir(path.join(projectDir, '.github/workflows'));
66
- await fs.writeFile(path.join(projectDir, '.github/workflows/publish.yml'), getPublishWorkflowTemplate());
67
- console.log(chalk.gray(' 创建: .github/workflows/publish.yml'));
68
- // 创建 feng3d.json 配置文件
69
- await fs.writeJson(path.join(projectDir, 'feng3d.json'), getFeng3dConfigTemplate({ name }), { spaces: 4 });
70
- console.log(chalk.gray(' 创建: feng3d.json'));
71
- }
72
- /**
73
- * 创建 package.json 内容
74
- */
75
- function createPackageJson(name, options) {
76
- const scripts = {
77
- dev: 'cd examples && npm run dev',
78
- clean: 'rimraf "{lib,dist,public}"',
79
- build: 'vite build',
80
- types: 'tsc',
81
- watch: 'tsc -w',
82
- lint: 'eslint . --ext .js,.ts --max-warnings 0',
83
- lintfix: 'npm run lint -- --fix',
84
- docs: 'typedoc',
85
- release: 'npm run clean && npm run lint && npm run build && npm run docs && npm run types && npm publish',
86
- prepublishOnly: 'node scripts/prepublish.js',
87
- postpublish: 'node scripts/postpublish.js',
88
- };
89
- if (options.vitest !== false) {
90
- scripts.test = 'vitest run';
91
- scripts['test:watch'] = 'vitest';
92
- }
93
- return {
94
- name: `@feng3d/${name}`,
95
- version: '0.0.1',
96
- description: '',
97
- homepage: `https://feng3d.com/${name}/`,
98
- author: 'feng',
99
- type: 'module',
100
- main: './src/index.ts',
101
- types: './src/index.ts',
102
- module: './src/index.ts',
103
- exports: {
104
- '.': {
105
- types: './src/index.ts',
106
- import: './src/index.ts',
107
- require: './src/index.ts',
108
- },
109
- },
110
- scripts,
111
- repository: {
112
- type: 'git',
113
- url: `https://github.com/feng3d-labs/${name}.git`,
114
- },
115
- publishConfig: {
116
- access: 'public',
117
- },
118
- files: ['src', 'dist', 'lib'],
119
- devDependencies: getDevDependencies({
120
- includeVitest: options.vitest !== false,
121
- includeTypedoc: true,
122
- }),
123
- };
124
- }
125
- //# sourceMappingURL=create.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -1,132 +0,0 @@
1
- /**
2
- * OSS 上传命令
3
- */
4
- import OSS from 'ali-oss';
5
- import fs from 'fs';
6
- import path from 'path';
7
- // 定义 JSON 配置文件的路径
8
- const configPath = 'C:/Users/Administrator/oss_config.json';
9
- /**
10
- * 将本地目录中的所有文件上传到指定的 OSS 目录中。
11
- *
12
- * @param localDirPath - 本地目录的路径,包含需要上传的文件。
13
- * @param ossDirPath - OSS 目录的路径,文件将被上传到此目录。
14
- */
15
- export async function ossUploadDir(localDirPath, ossDirPath) {
16
- // 读取配置文件以获取 OSS 相关的配置信息
17
- const config = readConfig(configPath);
18
- if (!config) {
19
- console.error('无法读取配置文件');
20
- return;
21
- }
22
- // 根据配置初始化 OSS 客户端
23
- const client = initializeOSS(config);
24
- // 收集本地目录中所有需要上传的文件,并计算它们在 OSS 中的目标路径
25
- const { files, failedFiles } = collectFiles(localDirPath, ossDirPath);
26
- console.log(`总文件数: ${files.length}`);
27
- // 执行文件上传操作,并统计成功和失败的文件数量
28
- const { successCount, failureCount } = await uploadFiles(files, client, failedFiles);
29
- console.log(`上传完成: 成功 ${successCount} 个, 失败 ${failureCount} 个`);
30
- if (failureCount > 0) {
31
- console.log('上传失败的文件列表:');
32
- failedFiles.forEach((file) => console.log(file));
33
- }
34
- // 打印访问路径
35
- if (successCount > 0) {
36
- const baseUrl = config.baseUrl || `https://${config.bucket}.${config.region}.aliyuncs.com`;
37
- const accessUrl = `${baseUrl}/${ossDirPath}/`;
38
- console.log(`\n📎 访问路径: ${accessUrl}`);
39
- }
40
- }
41
- /**
42
- * 读取并解析 JSON 配置文件
43
- */
44
- function readConfig(filePath) {
45
- try {
46
- // 读取文件内容
47
- const fileContent = fs.readFileSync(filePath, 'utf8');
48
- // 解析 JSON 内容
49
- const config = JSON.parse(fileContent);
50
- return config;
51
- }
52
- catch (error) {
53
- console.error('读取或解析配置文件时出错:', error);
54
- return null;
55
- }
56
- }
57
- /**
58
- * 初始化 OSS 客户端
59
- */
60
- function initializeOSS(config) {
61
- return new OSS({
62
- region: config.region,
63
- accessKeyId: config.accessKeyId,
64
- accessKeySecret: config.accessKeySecret,
65
- bucket: config.bucket,
66
- });
67
- }
68
- /**
69
- * 计算文件夹中所有需要上传的文件以及需要上传的地址
70
- */
71
- function collectFiles(dirPath, ossDirPath) {
72
- const files = [];
73
- const failedFiles = [];
74
- function traverseDirectory(currentDirPath, currentOssPath) {
75
- const items = fs.readdirSync(currentDirPath);
76
- for (const item of items) {
77
- const localFilePath = path.join(currentDirPath, item);
78
- const ossFilePath = `${currentOssPath}/${item}`;
79
- if (fs.statSync(localFilePath).isDirectory()) {
80
- traverseDirectory(localFilePath, ossFilePath);
81
- }
82
- else {
83
- files.push({ localFilePath, ossFilePath });
84
- }
85
- }
86
- }
87
- traverseDirectory(dirPath, ossDirPath);
88
- return { files, failedFiles };
89
- }
90
- /**
91
- * 渲染进度条
92
- */
93
- function renderProgressBar(current, total, barLength = 30) {
94
- const percent = current / total;
95
- const filled = Math.round(barLength * percent);
96
- const empty = barLength - filled;
97
- const bar = '█'.repeat(filled) + '░'.repeat(empty);
98
- const percentText = (percent * 100).toFixed(0).padStart(3, ' ');
99
- return `[${bar}] ${percentText}% (${current}/${total})`;
100
- }
101
- /**
102
- * 执行上传一系列文件
103
- */
104
- async function uploadFiles(files, client, failedFiles) {
105
- let successCount = 0;
106
- let failureCount = 0;
107
- let uploadedCount = 0;
108
- const total = files.length;
109
- // 显示初始进度条
110
- process.stdout.write(`上传进度: ${renderProgressBar(0, total)}`);
111
- for (const { localFilePath, ossFilePath } of files) {
112
- try {
113
- // 上传文件
114
- await client.put(ossFilePath, localFilePath);
115
- successCount++;
116
- }
117
- catch (e) {
118
- // 换行后打印错误,再重新显示进度条
119
- process.stdout.write('\n');
120
- console.error(`文件上传失败: ${localFilePath}`, e);
121
- failedFiles.push(localFilePath);
122
- failureCount++;
123
- }
124
- uploadedCount++;
125
- // 使用 \r 回到行首更新进度条
126
- process.stdout.write(`\r上传进度: ${renderProgressBar(uploadedCount, total)}`);
127
- }
128
- // 完成后换行
129
- process.stdout.write('\n');
130
- return { successCount, failureCount, uploadedCount };
131
- }
132
- //# sourceMappingURL=oss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oss.js","sourceRoot":"","sources":["../../src/commands/oss.ts"],"names":[],"mappings":"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"}