大家好,又到一年一度的我司申請軟著的時候了,今年寫了一些小工具,分享一下,大家寫軟著的時候興許能用到。
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 編輯過