@menartIsH

Как установить модуль Node.js на машине без интернета?

Есть компьютер с os Debian 9 без доступа к интернет, node.js и mysql установлены. Откуда скачать расширение для node.js для работы с mysql. И какие команды выполнить?
  • Вопрос задан
  • 861 просмотр
Решения вопроса 1
bingo347
@bingo347
Бородатый программер
Для начала теория:
1. Сам репозиторий npm располагается по адресу https://registry.npmjs.org/
работает он по принципу http+rest+json
2. Метаданные конкретного пакета можно получить по адресам:
https://registry.npmjs.org/$package
https://registry.npmjs.org/$package/$version
где $package - имя пакета, $version - нужная версия или latest для самой последней
3. в методанных по адресам https://registry.npmjs.org/$package/$version обязательно присутствует объект dist содержащий поля shasum (контрольная сумма архива) и tarball (ссылка на сам архив упакованный tar+gz), качаем архив по ссылке, при необходимости проверяем контрольную сумму
4. там же могут содержаться объекты dependencies и devDependencies, формат как в файле package.json

Базовую теорию рассказал, начать с этим писать свой npm/yarn уже можно, но не нужно
Действуем:
1. Пишем скрипт, который выкачивает tarball пакета и всего дерева его зависимостей и запускаем на машине где есть интернет
2. Копируем все это на целевую машину
3а. Устанавливаем все пакеты как расписал Константин Китманов через npm install ./package.tgz
Однако npm может опять же захотеть интернет, чтоб подтянуть зависимости, поэтому:
3б. Делаем установку вручную:

в папке проекта создадим node_modules:
mkdir node_modules

распакуем туда архивы, package меняем на имя пакета, version - на версию:
tar -xzf package-version.tgz node_modules/package

если у нас при подтягивании зависимостей получилось 2 версии одного пакета, то старшую ложим в свой node_modules а младшие в node_modules тех пакетов, которые затребовали такую версию

некоторые пакеты потребуют компиляции c++ части, тут понадобится python2 и build-essential в системе, которые можно поставить из deb пакетов (как выдернуть deb пакет из любого репозитория apt расписывать не буду, там принципы похожие), для компиляции достаточно запустить:
npm build path/to/unpacked/package
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Прочитать официальную документацию? Там все есть.


npm install <tarball file>:

Install a package that is sitting on the filesystem. Note: if you just want to link a dev directory into your npm root, you can do this more easily by using npm link. The filename must use .tar, .tar.gz, or .tgz as the extension.

Example:

npm install ./package.tgz
Ответ написан
mindtester
@mindtester
учу учиться.. чаще на C#. но бывают и варианты..
скачать deb и перенести на флешке

а можно и сорцы сдуть и пересобрать

вариантов до дури
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы