苏南大叔通过npm安装typescript解释器的时候,碰到了一个非常奇怪的错误,提示信息是关于readableHighWaterMark的。那么,如何解决这个很奇怪的问题呢?

苏南大叔:npm安装大文件,如何解决readableHighWaterMark报错? - npm-install-error
npm安装大文件,如何解决readableHighWaterMark报错?(图3-1)

本文测试环境:win10node@14.2.0npm@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"

苏南大叔:npm安装大文件,如何解决readableHighWaterMark报错? - npm-error-log
npm安装大文件,如何解决readableHighWaterMark报错?(图3-2)

修改cache.js

根据网络提示,是需要修改全局包make-fetch-happencache.js文件。所以,苏南大叔,按着以往经验,找到了本机的全局包的位置。但是,奇怪的事情发生了,这个位置下,根本就没有这个文件(夹)make-fetch-happen。仔细查看了这个错误提示信息之后,在报错日志的详情里面,看到了另外一个make-fetch-happen的位置,原来是别有洞天啊。

苏南大叔得到的路径是:

D:\Program Files\nodejs\node_modules\npm\node_modules\make-fetch-happen\

苏南大叔:npm安装大文件,如何解决readableHighWaterMark报错? - npm-error-cache-max
npm安装大文件,如何解决readableHighWaterMark报错?(图3-3)

打开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文件外,还需要清空本地缓存!

相关链接

总结

这个npm安装问题,是非常的罕见。只有安装较大文件的时候,才会触发。而npm安装的文件,一般都不会太大。所以,这个typescript是个个案。

更多npm相关文章,请点击苏南大叔的博客:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   npm    typescript

本站的忠实读者小伙伴,正在阅读下面这些文章: