如何从依赖包中提取所需功能接口并保存到本地?
可用工具及实现方案
- 你可以先用
depcheck扫描项目依赖调用情况,它会自动罗列出你实际用到的各依赖包的导出接口,你可以根据这份清单去对应依赖的源码中单独提取相关实现,过滤冗余代码。 - 用
rollup配合摇树优化配置可以实现自动化提取:安装rollup和rollup-plugin-node-externals插件后,在配置文件中开启严格treeshake,指定你需要提取的第三方依赖接口作为入口,打包后就会输出仅包含你用到的功能的无依赖单文件,直接存到本地项目里即可完全剥离原依赖包。 - 如果你用到的是以太坊加密、签名类的基础功能,可以直接用
ethereum-cryptography的模块化导出,这个库本身就是按最小颗粒度拆分功能的,支持单独导入单个加密函数,没有额外次级依赖,不需要额外裁剪就可以直接用。
涉及私钥处理的代码提取完成后,一定要核对提取的代码片段哈希和对应官方依赖版本的源码哈希一致,不要随意修改加密逻辑的原有实现,避免引入安全漏洞。
你现有的Demo可以直接新增一套rollup构建流程,把目前用到的合约交互、私钥处理相关的第三方接口单独打包成本地模块,即可满足零外部依赖的要求。
内容的提问来源于stack exchange,提问作者Ethan
相关产品推荐
相关产品推荐

