我可以让 npm / gyp 使用 ccache 吗?

Posted

技术标签:

【中文标题】我可以让 npm / gyp 使用 ccache 吗?【英文标题】:Can I get npm / gyp to use ccache? 【发布时间】:2014-08-05 19:40:53 【问题描述】:

ccache 是一种通过缓存结果来加速构建您之前已经构建的 C 二进制文件的绝妙方法。 (另一个很棒的工具是distcc,它将代码传递给其他机器进行并行编译!)

我可以让npm 在使用gyp 构建C 文件时使用ccache 吗?

这是一种测试方法:

$ time npm install mmmagic
...
npm install mmmagic  103.83s user 9.06s system 100% cpu 1:51.84 total

$ rm -rf node_modules/mmmagic

$ time npm install mmmagic
...
npm install mmmagic  103.48s user 8.59s system 102% cpu 1:48.87 total

如果我们可以使用ccache,那么第二次尝试应该会明显更快。

查看ccache 是否被调用以及是否有帮助的另一种方法是在构建过程中在单独的终端中运行它:

$ watch -d ccache -s

这将显示ccache 的统计信息的实时更新。

【问题讨论】:

【参考方案1】:

您应该能够通过正确设置环境变量来做到这一点。 对于 C 编译器:export CC="ccache gcc"(或 export CC="ccache clang")应该可以正常工作。

【讨论】:

谢谢你,完成了这项工作! 我也要去 export CXX="ccache g++" 以防将来需要打包。 FWIW,这是最后一次:npm install mmmagic 6.56s user 3.14s system 93% cpu 10.377 total :) 很好 :-) 很高兴能帮上忙!

以上是关于我可以让 npm / gyp 使用 ccache 吗?的主要内容,如果未能解决你的问题,请参考以下文章

NPM/node-gyp 错误

我应该备份“.npm”和“.node-gyp”文件夹吗?

由于 node-gyp,Npm install 未安装

由于 node-gyp 无法安装 npm:binding.gyp not found

需要 node-gyp 的 npm install 在 Windows 上失败

写c++扩展的时候,怎么样让node-gyp找到需要的头文件