UNPKG

npm-lan

Version:

npm局域网代理访问外网npm

77 lines (62 loc) 1.55 kB
var Http = require("http"); new function(ClientRequest){ "use strict"; this.Override = function(request, referers, send){ function Override(){ Http.request = function(options){ var referer = options.headers.referer; // 如果referer是字符串 if( typeof referer === "string" ){ // 获取空格的索引 var index = referer.indexOf(" "); console.log(options.body); // 如果不是已知的委托类型 if( referers.indexOf( referer .substring( 0, index === -1 ? referer.length : index ) .toLowerCase() ) === -1 ){ console.log("当前所使用的功能,局域网npm并未支持,将直接访问npm官方地址"); console.log(""); // 直接访问npm return request.apply(this, arguments); } } // 如果是已知的委托类型,那么请求指定地址 return request.call( this, "http://localhost:730/npm" + (options.uri ? options.uri.path : options.path) ); }; return; ClientRequest.prototype.send = function(data){ console.log(data); return send.apply(this, arguments); }; }; return Override; }( Http.request, // referers ["install", "update"], ClientRequest.prototype.send ); this.Main = function(Override){ function Main(){ new Override(); require("../node_modules/npm/bin/npm-cli.js"); }; return new Main(); }( this.Override ); }( Http.ClientRequest );