feng3d-cli 0.0.3 → 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 +0 -17
- package/bin/cli.js +135 -0
- package/dist/index.js +792 -9
- package/dist/index.js.map +1 -1
- package/dist/index.umd.cjs +792 -0
- package/dist/index.umd.cjs.map +1 -0
- package/{dist → lib}/commands/create.d.ts.map +1 -1
- package/{dist → lib}/commands/update.d.ts +1 -0
- package/{dist → lib}/commands/update.d.ts.map +1 -1
- package/{dist → lib}/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -0
- package/{dist → lib}/templates.d.ts +10 -14
- package/lib/templates.d.ts.map +1 -0
- package/{dist → lib}/types/config.d.ts +2 -0
- package/{dist → lib}/types/config.d.ts.map +1 -1
- package/package.json +20 -22
- package/schemas/feng3d.schema.json +5 -0
- package/templates/.github/workflows/pages.yml +35 -2
- package/templates/.github/workflows/publish.yml +2 -8
- package/templates/.github/workflows/pull-request.yml +7 -2
- package/templates/feng3d.json +2 -1
- package/templates/gitignore +3 -0
- package/templates/scripts/postpublish.js +19 -0
- package/templates/scripts/prepublish.js +19 -0
- package/templates/typedoc.json +2 -2
- package/templates/vite.config.js +49 -0
- package/dist/cli.d.ts +0 -7
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -108
- package/dist/cli.js.map +0 -1
- package/dist/commands/create.js +0 -125
- package/dist/commands/create.js.map +0 -1
- package/dist/commands/oss.js +0 -132
- package/dist/commands/oss.js.map +0 -1
- package/dist/commands/update.js +0 -482
- package/dist/commands/update.js.map +0 -1
- package/dist/eslint.d.ts +0 -236
- package/dist/eslint.d.ts.map +0 -1
- package/dist/eslint.js +0 -119
- package/dist/eslint.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/templates.d.ts.map +0 -1
- package/dist/templates.js +0 -153
- package/dist/templates.js.map +0 -1
- package/dist/types/config.js +0 -50
- package/dist/types/config.js.map +0 -1
- package/dist/versions.js +0 -60
- package/dist/versions.js.map +0 -1
- package/templates/vitest.config.ts +0 -8
- /package/{dist → lib}/commands/create.d.ts +0 -0
- /package/{dist → lib}/commands/oss.d.ts +0 -0
- /package/{dist → lib}/commands/oss.d.ts.map +0 -0
- /package/{dist → lib}/versions.d.ts +0 -0
- /package/{dist → lib}/versions.d.ts.map +0 -0
package/dist/cli.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* feng3d-cli
|
|
4
|
-
* feng3d 命令行工具,包含项目规范、OSS 上传等功能
|
|
5
|
-
*/
|
|
6
|
-
import fs from 'fs';
|
|
7
|
-
import { Command } from 'commander';
|
|
8
|
-
import chalk from 'chalk';
|
|
9
|
-
import { createProject } from './commands/create.js';
|
|
10
|
-
import { updateProject } from './commands/update.js';
|
|
11
|
-
import { ossUploadDir } from './commands/oss.js';
|
|
12
|
-
const program = new Command();
|
|
13
|
-
program
|
|
14
|
-
.name('feng3d-cli')
|
|
15
|
-
.description('feng3d 命令行工具')
|
|
16
|
-
.version('0.0.1');
|
|
17
|
-
program
|
|
18
|
-
.command('create <name>')
|
|
19
|
-
.description('创建符合 feng3d 规范的新项目')
|
|
20
|
-
.option('-d, --directory <dir>', '项目目录', '.')
|
|
21
|
-
.option('--no-examples', '不创建示例目录')
|
|
22
|
-
.option('--no-vitest', '不包含 vitest 测试配置')
|
|
23
|
-
.action(async (name, options) => {
|
|
24
|
-
console.log(chalk.blue(`\n🚀 创建项目: ${name}\n`));
|
|
25
|
-
try {
|
|
26
|
-
await createProject(name, options);
|
|
27
|
-
console.log(chalk.green(`\n✅ 项目 ${name} 创建成功!\n`));
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
console.error(chalk.red(`\n❌ 创建失败: ${error}\n`));
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
program
|
|
35
|
-
.command('update')
|
|
36
|
-
.description('更新当前项目的规范配置')
|
|
37
|
-
.option('-d, --directory <dir>', '项目目录', '.')
|
|
38
|
-
.option('--config', '仅更新 feng3d.json 配置')
|
|
39
|
-
.option('--eslint', '仅更新 ESLint 配置')
|
|
40
|
-
.option('--gitignore', '仅更新 .gitignore')
|
|
41
|
-
.option('--cursorrules', '仅更新 .cursorrules')
|
|
42
|
-
.option('--publish', '仅更新 npm publish workflow')
|
|
43
|
-
.option('--pages', '仅更新 GitHub Pages workflow')
|
|
44
|
-
.option('--pull-request', '仅更新 Pull Request CI workflow')
|
|
45
|
-
.option('--typedoc', '仅更新 typedoc.json')
|
|
46
|
-
.option('--test', '仅更新 test/_.test.ts')
|
|
47
|
-
.option('--deps', '仅更新依赖版本')
|
|
48
|
-
.option('--husky', '仅更新 husky pre-commit hook')
|
|
49
|
-
.option('--license', '仅更新 LICENSE 文件')
|
|
50
|
-
.option('--vscode', '仅更新 .vscode/settings.json')
|
|
51
|
-
.option('--tsconfig', '仅更新 tsconfig.json')
|
|
52
|
-
.option('--all', '更新所有配置')
|
|
53
|
-
.action(async (options) => {
|
|
54
|
-
console.log(chalk.blue('\n🔄 更新项目规范配置\n'));
|
|
55
|
-
try {
|
|
56
|
-
await updateProject(options);
|
|
57
|
-
console.log(chalk.green('\n✅ 规范配置更新成功!\n'));
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
console.error(chalk.red(`\n❌ 更新失败: ${error}\n`));
|
|
61
|
-
process.exit(1);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
program
|
|
65
|
-
.command('check')
|
|
66
|
-
.description('检查当前项目是否符合 feng3d 规范')
|
|
67
|
-
.option('-d, --directory <dir>', '项目目录', '.')
|
|
68
|
-
.action(async () => {
|
|
69
|
-
console.log(chalk.blue('\n🔍 检查项目规范\n'));
|
|
70
|
-
// TODO: 实现规范检查
|
|
71
|
-
console.log(chalk.yellow('暂未实现'));
|
|
72
|
-
});
|
|
73
|
-
program
|
|
74
|
-
.command('oss_upload_dir')
|
|
75
|
-
.description('上传文件夹到阿里云 OSS')
|
|
76
|
-
.option('-l, --local_dir <string>', '本地目录', './public')
|
|
77
|
-
.option('-o, --oss_dir <string>', 'OSS 目录', '')
|
|
78
|
-
.action(async (options) => {
|
|
79
|
-
const localDir = options.local_dir;
|
|
80
|
-
let ossDir = options.oss_dir;
|
|
81
|
-
if (!fs.existsSync(localDir)) {
|
|
82
|
-
console.log(chalk.red(`\n❌ 本地目录 ${localDir} 不存在!\n`));
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
if (!ossDir) {
|
|
86
|
-
// 获取当前目录下 package.json 的 name 字段
|
|
87
|
-
try {
|
|
88
|
-
const packageJson = fs.readFileSync('package.json', 'utf-8');
|
|
89
|
-
const packageJsonObj = JSON.parse(packageJson);
|
|
90
|
-
ossDir = packageJsonObj.name.split('/').pop();
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
console.log(chalk.red('\n❌ 无法读取 package.json 获取项目名称\n'));
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
console.log(chalk.blue(`\n📤 上传文件夹到阿里云 OSS: ${localDir} -> ${ossDir}\n`));
|
|
98
|
-
try {
|
|
99
|
-
await ossUploadDir(localDir, ossDir);
|
|
100
|
-
console.log(chalk.green('\n✅ 上传完成!\n'));
|
|
101
|
-
}
|
|
102
|
-
catch (error) {
|
|
103
|
-
console.error(chalk.red(`\n❌ 上传失败: ${error}\n`));
|
|
104
|
-
process.exit(1);
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
program.parse();
|
|
108
|
-
//# sourceMappingURL=cli.js.map
|
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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"}
|
package/dist/commands/create.js
DELETED
|
@@ -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({ name: `@feng3d/${name}`, 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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"}
|
package/dist/commands/oss.js
DELETED
|
@@ -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
|
package/dist/commands/oss.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oss.js","sourceRoot":"","sources":["../../src/commands/oss.ts"],"names":[],"mappings":"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"}
|