本工具用于整理项目代码(软著代码整理),功
本工具用于整理项目代码(软著代码整理),功能包括代码汇总、空行与注释的剔除。
匹配注释的正则表达式如下:
/\s*(\/\*.*?\*\/|<!--.*?-->|\/\/.*?$)/gms
主要逻辑在 res\index.js
里:
let fs=require('fs'); const { fdir } = require("fdir"); console.log(process.argv); const dir = process.argv[2]; // const dir = 'E:\\data\\web\\vue.js\\vue3\\hir'; // 文件类型过滤 let filterArg = process.argv[3]; // const filterArg = '\\.js|\\.vue'; if (filterArg==="*") { filterArg = '.+'; } const filter = new RegExp("("+filterArg+")$",'i'); // 文件夹过滤 const excludeArg = process.argv[4]; // const excludeArg = 'node_modules|dist'; let exclude; if (excludeArg!=='*') { exclude = new RegExp(excludeArg,'i'); } const codeFilePath = process.argv[5]; // const codeFilePath = './code.txt'; try { fs.unlinkSync(codeFilePath); console.log(`reset ${codeFilePath}`); } catch (error) { } let api = new fdir().withFullPaths().filter( (path, isDirectory) => { // console.log(path); // 文件类型过滤, true 则包含 return filter.test(path); } ) if (exclude) { api = api.exclude((dirName="", dirPath) =>{ // console.log(dirName); return exclude.test(dirName); } ); } api.crawl(dir).withPromise().then((files) => { for (let index = 0; index < files.length; index++) { const filePath = files[index]; console.log(index+1,filePath); const data = fs.readFileSync(filePath); const content = data.toString(); let replaceContent = content.replace(/\s*(\/\*.*?\*\/|<!--.*?-->|\/\/.*?$)/gms, ''); replaceContent = replaceContent.replace(/^\s*\n/gm, ''); fs.appendFileSync(codeFilePath, replaceContent); } console.log('ok!'); });
软著申请流程:https://juejin.cn/post/7057381729430372383
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。