如何利用github搜索技巧获得你想要的高质量代码 --- code 篇

1,182 阅读3分钟

github搜索技巧系列 --- searching code

在实际项目开发过程中,优秀的同学往往会不断的尝试新的技术框架,但与此同时也产生了一个问题,有些技术框架的文档匮乏,无可使用demo。或者demo生涩难懂,无法使用。你是否也有过以下的需求?

微前端框架qiankun 是如何封装沙箱(sandbox)的?

github 上搜索 sandbox in:path repo:umijs/qiankun

我想获得:

  • 我想看一下阿里p8是如何利用vue-property-decorator写项目的?

  • 我想看一下别人的vuex中的mapState是在language=ts的情况下是如何使用?

  • 我想看一下typescript如何在vue中使用的?我在写异类代码吗?

为解决上述几个问题,下面将介绍几个github中常用的 searching code 搜索技巧

简单渠道

github.com/search/adva…

in 系列

  1. in:file
  • 语法: 关键词 in:file

  • github 上搜索: mapState in:file language:typescript

  • 含义:匹配文件内容中出现“mapState”的代码。

  1. in:path
  • 语法: 关键词 in:path

  • github 上搜索:store index in:path language:typescript

  • 含义:匹配在文件路径中出现“ store index”的代码。

path 系列

  1. path:/
  • 语法: 关键词 path:路径

  • github 上搜索:vuejs filename:readme path:/

  • 含义:将位于存储库根目录级别的带有单词“ vuejs”的readme文件 进行匹配。

  1. path:DIRECTORY
  • 语法: 关键词 path:文件夹名

  • github 上搜索:mkpath path:thsi language:javascript

  • 含义:在 thsi目录或其任何子目录中与单词“mkpath”匹配。

  1. path:PATH/TO/DIRECTORY
  • 语法: 关键词 path:文件夹名

  • github 上搜索:import vue path:src/pages language:typescript

  • 含义:搜索import 和vue关键词,在src/pages/下,类型为typescript。(搜索配置了多页的vue项目)

filename

  1. filename 直接匹配文件名
  • 语法: filename:FILENAME(关键词)

  • github 上搜索:filename:vue.config language:javascript

  • 含义:查看别人vue项目的config配置

  1. filename:文件名 内容
  • github 上搜索:filename:vue.config chainWebpack language:javascript

  • 含义:会匹配 vue.config.js下有chainWebpack配置的文件

  1. filename:文件名 path:路径名 language:文件编写语言
  • github 上搜索:filename:vue.config chainWebpack path:/ language:javascript

  • 含义:匹配/路径下含有关键词 chainWebpack 的vue.config.js文件

extension

  • 语法: extension:后缀名称

  • github 上搜索:filename:vue.config chainWebpack path:/ extension:ts

  • 含义:会匹配 vue.config.js下有chainWebpack配置的文件

注意事项

  1. 搜索前必须先登录
  2. 搜索结果优先显示stars多的repo,只有项目被fork之后才会被搜索到
  3. 默认搜索master分支
  4. 默认搜索小于384kb的文件
  5. 默认搜索少于500,000个文件的存储库
  6. 搜索code时,除filename外,搜索源代码时必须始终至少包含一个搜索词。例如,搜索language:javascript是无效的,而amazing language:javascript是有效的
  7. 搜索结果可以显示同一文件中的两个片段,但是文件中可能会有更多结果
  8. 搜索查询中不能使用以下通配符:. , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]。搜索将仅忽略这些符号