我写了一个分析许多yeoman发生器结构的包: https://github.com/tobiasoberrauch/yeoman-analyzer
因此我必须安装所有发电机。这个解决方案需要很长时间(12小时)。我不太确定当前的解决方案是最好的方法:
获取生成器名称列表:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/data/generators.json
将生成器安装到node_modules,关于生成器名称列表(非常慢):https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L24
分析每个生成器的index.js:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L47
将报告写入json文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/reporter/json.js#L21
有没有办法加快这个过程?花了很长时间。 我读到了缓存,本地注册表(npmd),但我找不到合适的,可行的解决方案。
我会对任何提示感到高兴:+1: 干杯托比亚斯
答案 0 :(得分:0)
如果您只需要index.js
,则无需安装所有生成器。只需使用类似wget的内容从npm注册表下载tarball,然后使用tar xz
解压缩。
答案 1 :(得分:0)
感谢您的提示。 这是我的(暂时)解决方案:
从注册表中获取包数据:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L50
获取最新版本:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L64
下载和/或解压缩tarball文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L129
从解压缩的文件中读取package.json并获取主文件:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L79
在主文件中查找表达式:https://github.com/tobiasoberrauch/yeoman-analyzer/blob/master/lib/analyzer/generators.js#L90
有时zip文件为空,下载突然停止或esprima解析器显示意外错误。但我有一个粗略的计划来优化它。 这只是一个可怕的回调地狱。现在是优化和重组的时候了。