Создать прокси-сервер в реестре NPM - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь создать свою собственную версию local-npm

У меня есть этот простой http-сервер:

#!/usr/bin/env node
'use strict';

import http = require('http');

const s = http.createServer(function (clientRequest, clientResponse) {

  if (clientRequest.url === 'x') {
    clientResponse.write('retrieve the tarball from local fs');
    clientResponse.end();
    return;
  }

  const proxy = http.request({
      hostname: 'https://registry.npmjs.org',
      port: 80,
      path: clientRequest.url,
      method: clientRequest.method
    },
    function (res) {
      res.pipe(clientResponse);
    });

  clientRequest.pipe(proxy);

});

s.listen(3441);

В локальном терминале я запускаю:

npm config set registry "localhost:3441"

и только ради ударов я тоже запускаю:

npm set registry "localhost:3441"

и чтобы подтвердить, что это сработало, я делаю:

$(npm get registry) => "localhost:3441"

но затем, когда я запускаю npm install, прокси ничего не перехватывает, все просто идет к NPM.

Что я делаю не так?

1 Ответ

0 голосов
/ 15 мая 2018

Таким образом, настройка реестра немного отличается от прокси.

Настройка реестра запросит пакет из установленного реестра;если задано значение по умолчанию, npm registry будет получать запрос, однако, если задано что-то еще, он получит запрос.

В качестве альтернативы, установка прокси позволит получить доступ к установленному реестру через определенный домен.,Это то, что я должен установить на работе, чтобы npm работал.

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

ref


Настройка реестра почти такая же.

npm config set registry http://localhost:3441
...