npm安装大文件,如何解决readableHighWaterMark报错?
发布于 作者:苏南大叔 来源:程序如此灵动~
苏南大叔通过npm安装typescript解释器的时候,碰到了一个非常奇怪的错误,提示信息是关于readableHighWaterMark的。那么,如何解决这个很奇怪的问题呢?

本文测试环境:win10、node@14.2.0、npm@6.14.4。
报错提示
苏南大叔的主要目的是安装typescript,所以执行的命令,如下:
npm i typescript -D得到的报错信息如下:
npm ERR! code ERR_INVALID_OPT_VALUE
npm ERR! The value "false" is invalid for option "readableHighWaterMark"
修改cache.js
根据网络提示,是需要修改全局包make-fetch-happen的cache.js文件。所以,苏南大叔,按着以往经验,找到了本机的全局包的位置。但是,奇怪的事情发生了,这个位置下,根本就没有这个文件(夹)make-fetch-happen。仔细查看了这个错误提示信息之后,在报错日志的详情里面,看到了另外一个make-fetch-happen的位置,原来是别有洞天啊。
苏南大叔得到的路径是:
D:\Program Files\nodejs\node_modules\npm\node_modules\make-fetch-happen\
打开cache.js。找到如下的代码字样:
const MAX_MEM_SIZE = 5 * 1024 * 1024 // 5MB把默认的5改成一个大点的值,苏南大叔这里修改的是25。这个值可以看您的实际情况进行修改。总体的思路就是:npm要下载一个大文件,但是这里有个最大文件的限制。所以,不难下载比较大的文件了。
const MAX_MEM_SIZE = 25 * 1024 * 1024 // 25MB修改完成后,再次执行npm命令下载typescript。成功!如果想再次复现这个问题,除了修复cache.js文件外,还需要清空本地缓存!
相关链接
- https://newsn.net/say/npm-cache.html
- https://newsn.net/say/node-mirror.html
- https://newsn.net/say/centos-node.html
总结
这个npm安装问题,是非常的罕见。只有安装较大文件的时候,才会触发。而npm安装的文件,一般都不会太大。所以,这个typescript是个个案。
更多npm相关文章,请点击苏南大叔的博客: