我在自己的nodejs应用程序bcrypt
npm软件包中使用了身份验证/加密密码。问题出在代理服务器上。由于代理阻止了预构建二进制文件的安装:
node-pre-gyp WARN Pre-built binaries not installable for bcrypt@3.0.0 and node@8.12.0 (node-v57 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error connect ECONNREFUSED 10.254.3.15:443
我已将npm代理配置为:
npm config set registry http://proxy-url
但是看起来node-pre-gyp从其他地方安装了依赖项,但它不使用代理,因此会失败。所有其他npm软件包都可以安装。我试图搜索所需的预构建库,但没有任何具体解决方案。知道如何克服这个问题吗?
答案 0 :(得分:0)
在路径C:\ Users \ Administrator下手动创建 binding.gyp 文件,其内容如下:遵循这些步骤
{
"targets": [
{
"target_name": "binding",
"sources": [ "build/Release/binding.node" ]
}
]
}
然后,我运行 node-gyp rebuild 命令,问题就解决了。
答案 1 :(得分:0)
我有同样的问题,node-gyp无法连接(在npm install bcrypt期间)。通常,npm使用http-proxy变量来设置软件包,而gyp使用代理变量。
Dio getAuthenticatedDio() {
authenticatedDio.interceptors.clear();
authenticatedDio.interceptors.add(BearerInterceptor(oauth));
authenticatedDio.interceptors
.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
return options; //continue
}, onResponse: (Response response) async {
print(response);
return response; // continue
}, onError: (DioError e) async {
print(e);
if (e.response.statusCode == 401) {
authenticatedDio.interceptors.requestLock.lock();
authenticatedDio.interceptors.responseLock.lock();
return oauth.refreshAccessToken().whenComplete(() {
authenticatedDio.interceptors.requestLock.unlock();
authenticatedDio.interceptors.responseLock.unlock();
return authenticatedDio.request(e.request.path, options: e.request);
});
}
return e;
}));
return authenticatedDio;}
对我来说很好。