软著申请之代码整理跟代码数统计
|
freeflydom
2025年5月13日 10:27
本文热度 64
|
大家好,又到一年一度的我司申请软著的时候了,今年写了一些小工具,分享一下,大家写软著的时候兴许能用到。
1. 代码整理
软著的申请是需要提交一些项目代码的,最好是60页,前面最好是项目的启动文件,因此第一页我首先会拷贝项目的 package.json
文件,接下来拷贝 src/app
下面的文件,那么手动拷贝一个个文件这种麻烦的事情程序员肯定不会干的,因此用到了以下这个文件,可以输出某个目录下的所有文件,并进行整理。
另外由于代码文件中不建议出现空行,因此这里的程序把所有的空行都去掉了。
输出完文件之后,需要对文件进行检查,如果文件的内容的中文部分对软著的申请有歧义的,可以进行进一步诠释或者删除。
const fs = require('fs');
const path = require('path');
const sourceDir = path.resolve(__dirname, 'src/pages');
const outputFile = path.resolve(__dirname, 'merged_output.txt');
const projectName = ''
fs.writeFileSync(outputFile, '', 'utf-8');
function readFilesRecursively(dir) {
const entries = fs.readdirSync(dir, { withFileTypes: true });
for (const entry of entries) {
const fullPath = path.join(dir, entry.name);
if (entry.isDirectory()) {
readFilesRecursively(fullPath);
} else if (entry.isFile()) {
const relativePath = path.relative(__dirname, fullPath);
const content = fs.readFileSync(fullPath, 'utf-8');
const nonEmptyLines = content
.split('\n')
.filter((line) => line !== '');
fs.appendFileSync(outputFile, `// ${projectName}/${relativePath} \n`, 'utf-8');
fs.appendFileSync(outputFile, nonEmptyLines.join('\n') + '\n', 'utf-8');
console.log(`已合并:${relativePath}`);
}
}
}
readFilesRecursively(sourceDir);
console.log(`✅ 合并完成,输出文件:${outputFile}`);
输出格式形如:
非空行内容1
非空行内容2
console.log('hello');
2. 代码行数统计
那么在软著的申请表上还需要统计项目代码的总行数,像这种麻烦的事情程序员也不会手动干的。
先安装插件Statistic
,Webstorm/Setting
然后搜索 
点击statistics
,在这里可以查看到项目代码的总行数。

如果需要去掉某些目录,点击setting
后可以点击这里的Add,添加后将不会进行统计。

后面附上软著申请的参考文件,有需要的可以看看
软著编写模板
AlexanderZhou01/China-software-copyright
手把手带你申请软著!助你提高通过率!!!
前端可以申请软著吗
转自https://juejin.cn/post/7503172559274901544
该文章在 2025/5/13 10:27:26 编辑过