使用nodejs在mac上实现将项目代码转pdf

Ourboke
Ourboke
Ourboke
16368
文章
148
评论
2022年1月8日10:57:42

现在有这么个需求,你做的某个项目的代码需要放到一个 pdf 文件中,当然可以一个个文件打开去复制到pdf文件中,但是随着前端工程化的演变,往往一个项目有几百个文件,那么这个工程量是巨大且乏味的。而作为一个技术人员,通过自动化的方式去优化任务是必须要掌握的技能。下面代码会通过 nodejs 来达到需求目的。

使用步骤:将需要转pdf的代码路径替换到代码目标路径中,配置文件夹中需要复制代码后缀名称,在vscode中打开右键 Run Code (需要安装node)。

运行完成打开result.txt

顶部菜单栏选择文件->导出为pdf即可

node 代码

const path = require('path')
const fs = require('fs')

// 需要赋值代码所在文件夹目标路径 /Users/project/
const basePath = '代码目标路径';
// 文件夹中需要复制代码后缀名称
const fileSuffix  = ['.json', '.less', '.html', '.ts'];

// 遍历目录下所有需要的文件
function mapDir(dir, callback, finish) {
  fs.readdir(dir, function(err, files) {
    if (err) {
      console.error(err)
      return
    }
    files.forEach((filename, index) => {
      let pathname = path.join(dir, filename)
      // 读取文件信息
      fs.stat(pathname, (err, stats) => {
        if (err) {
          console.log('获取文件stats失败')
          return
        }
        if (stats.isDirectory()) {
          mapDir(pathname, callback, finish)
        } else if (stats.isFile()) {
          if (fileSuffix.includes(path.extname(pathname))&&!['.spec'].includes(path.extname(pathname))&&pathname.indexOf('node_modules')===-1) {  
            // 排除 目录下的 json less 文件
            fs.readFile(pathname, (err, data) => {
              console.log(pathname);
              if (err) {
                console.error(err)
                return
              }
              callback && callback(data)
            })
          }else {
            return
          }
        }
      })
      if (index === files.length - 1) {
        finish && finish()
      }
    })
  })
}
// 执行
mapDir(
  basePath,
  function(file) {
    // 读取文件后将文件内容写入 result.txt
    fs.appendFile(__dirname+'/result.txt', file, 'utf8', function(err){
      if(err) throw err;
      // console.log('write JSON into TEXT');
    });
  },
  function() {
    // console.log('xxx文件目录遍历完了')
  }
)

 

Vue实现详情返回列表页记住滚动条位置 网站建设

Vue实现详情返回列表页记住滚动条位置

最近用 Vue 做移动端页面遇到一个问题,从列表页进入详情页,再返回到列表页,不管之前滚动到哪里,每次返回时都跳到列表最顶部。这样体验肯定不好,期望的应该是记住滚动条的位置,每次返回还是在原来的位置上...
Nginx开启gzip压缩的完整步骤记录 网站建设

Nginx开启gzip压缩的完整步骤记录

Nginx开启Gzip压缩功能,可以使网站的css、js 、xml、html文件在传输时进行压缩,提高访问速度,进而优化Nginx性能,下面这篇文章主要给大家介绍了关于nginx开启gzip压缩的相关...
python实现腾讯云轻量云流量超标自动关闭系统 网站建设

python实现腾讯云轻量云流量超标自动关闭系统

前几天在LOC上看到说良心云的轻量云流量超标后会额外扣超出的流量费,吓得我赶紧学着也弄了个脚本来监控轻量云,当流量超过自己设定的预警值后,自动关闭轻量云,避免超流量要付额外的流量钱。 但...