错误:运行yarn命令时无法获取本地颁发者证书

the*_*ack 11 javascript yarnpkg

我有自己的私人npm注册表http://something.我安装了纱线并尝试运行以下命令.

yarn
Run Code Online (Sandbox Code Playgroud)

但它给出了以下错误.

Trace: 
  Error: unable to get local issuer certificate
      at Error (native)
      at TLSSocket.<anonymous> (_tls_wrap.js:1017:38)
      at emitNone (events.js:67:13)
      at TLSSocket.emit (events.js:166:7)
      at TLSSocket._init.ssl.onclienthello.ssl.oncertcb.TLSSocket._finishInit (_tls_wrap.js:582:8)
      at TLSWrap.ssl.onclienthello.ssl.oncertcb.ssl.onnewsession.ssl.onhandshakedone (_tls_wrap.js:424:38)
Run Code Online (Sandbox Code Playgroud)

我发现了几个github问题和解决方案.

https://github.com/yarnpkg/yarn/issues/841 https://github.com/yarnpkg/yarn/commit/b0611a6ee5220b0b1e955b271b6140640158f96c(0.16.0可用)

看起来我必须strict-ssl在yarn配置中设置为false.我无法确切地知道我该怎么做.我尝试在package.json中以下列方式提供选项但是没有用.

1)

{
config: {
"strict-ssl": false
}
}
Run Code Online (Sandbox Code Playgroud)

2)

{
"strict-ssl": false
}
Run Code Online (Sandbox Code Playgroud)

但我仍然得到同样的错误.我哪里做错了?

Sun*_*abu 17

在Nodejs命令提示符下运行以下命令.一切正常.它的bcos运行代理错误

yarn config set "strict-ssl" false -g
Run Code Online (Sandbox Code Playgroud)

  • 但是,请注意,-g表示它是全局设置的。为了安全起见,只有在需要时才可以关闭它并运行&lt;/br&gt;`yarn config set“ strict-ssl” false` &lt;/br&gt;。 (3认同)
  • `export NODE_EXTRA_CA_CERTS=/path/to/your/CA/cert.pem` 是更好的方法。 (2认同)

Fra*_*Ade 10

该命令已更新。现在的命令是:

yarn config set enableStrictSsl false
Run Code Online (Sandbox Code Playgroud)


the*_*ack 9

意识到配置需要进入.yarnrc文件.我已经设定了以下功能.

cafile null
strict-ssl false
Run Code Online (Sandbox Code Playgroud)

另请注意,纱线也从.npmrc文件中获取配置选项.

  • @raingod 您是否收到错误消息,“错误无法打开 cafile:ENOENT:没有这样的文件或目录,请打开‘/project/dir/null’”? (3认同)