npm项目背后的企业代理全球

时间:2018-05-07 09:24:26

标签: javascript node.js npm proxy corporate

我发现已经有很多有用的教程来设置本地代理和全局安装包等等。 现在我开始了一个新项目,我想出了如何重用代理设置:

#! /usr/bin/env node

var http = require("http");
var shell = require('shelljs');
var request = require('request');
var iplocation = require('iplocation')

// setup proxy
var proxyUrl = shell.exec('npm config get proxy', {silent:true}).stdout;
var proxiedRequest = request.defaults({
  'proxy': proxyUrl, 
  'https-proxy' : proxyUrl,
  'strict-ssl' : false
});

// get location (works)
  proxiedRequest('http://ipinfo.io/216.58.194.46', function (error, response, body) {
  console.log('error:', error);
  console.log('statusCode:', response && response.statusCode);
  console.log('body:', body); 
});

// doesn't work 
iplocation('56.70.97.8').then(res => {
  console.log(res.iplocation)
  })
  .catch(err => {
    console.error(err);
})

有没有办法为项目设置全局,所以其他npm包也可以使用它? 我在projects文件夹中尝试了一个本地.npmrc文件,但它根本不会影响环境。

欢迎任何提示。感谢

1 个答案:

答案 0 :(得分:0)

SO answer1SO answer2解释了设置npm代理的不同方法。看看它是否对你有帮助。

您可以在您的bashrc中添加proxy_on和proxy_off等函数,这样您就可以设置全局npm配置并从命令行切换它。

有关代码,请参阅此gist