我无法使用npm安装任何东西!
我在用什么?
节点v10.16.0
npm v6.9.0
windows 7 x64
带有MITM内容检查工具的企业代理(很可能是罪魁祸首)
我在做什么?
npm install node-sass -g
发生了什么事?
根据配置,我会遇到以下两个错误之一:
npm ERR! code SELF_SIGNED_CERT_IN_CHAIN
npm ERR! code EINTEGRITY
npm ERR! sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== integrity checksum failed when using sha512: wanted sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== but got sha512-jIvvQweolCmipqZXjsC8NUIKS/iux7/bKsBBZQCCMibvCg/eNyz0L7L7ddO9r1dRStqWyBlrHFUPRrF56wCr/A==. (2121 bytes)
我尝试了什么?
代理配置:
npm config set http-proxy http://user:password@proxy:port
npm config set https-proxy http://user:password@proxy:port
仅此一项就可以工作。
全新安装:
我已卸载Node和npm,从npm
删除了文件夹npm-cache
和C:\Users\me\AppData\Roaming
,并从.npmrc
删除了C:\Users\me
。
我还跑过npm cache clean --force
和npm cache verify
在此之后,我尝试重新安装Node v10.16.0和v10.15.3(npm 6.4.1)
禁用SSL:
npm config set strict-ssl false
NODE_TLS_REJECT_UNAUTHORIZED
设置为0 CA配置:
我已经从Internet Options > content > certificates > trusted root certification authorities
导出了所有公司证书。我已将它们导出到单个Base 64编码的X.509 .cer
文件,并创建了一个单独的bundle.cer
文件并将它们合并在一起。
然后我尝试通过以下所有方式使用它:
npm config set cafile C:\\certs\\cert1.cer
npm config set cafile C:\\certs\\cert2.cer
npm config set cafile C:\\certs\\cert3.cer
npm config set cafile C:\\certs\\bundle.cer
npm config set ca BASE64-code-taken-from-each-cer-file
将Windows环境变量NODE_EXTRA_CA_CERTS
设置为上面的每个文件。
打包锁定:
有些帖子建议删除package-lock.json
。我没有这个,因为我要在全球范围内安装,而不是在本地项目中安装。我尝试在本地目录中不安装全局标志的情况下进行安装。我遇到同样的SSL问题。
帮助!