node -gyp загружает следующие файлы из Интернета во время установки и создания собственных модулей, таких как iconv, ref, ffi и т.д.:
https://nodejs.org/download/release/v6.10.0/node-v6.10.0-headers.tar.gz
https://nodejs.org/download/release/v6.10.0/win-x86/node.lib
https://nodejs.org/download/release/v6.10.0/win-x64/node.lib
https://nodejs.org/download/release/v6.10.0/SHASUMS256.txt
Как сделать node -gyp использовать эти файлы из локальных папок, а не из Интернета?
Я нашел следующее решение:
1. Скачайте https://nodejs.org/download/release/v6.10.0/node-v6.10.0-headers.tar.gz
2. Распакуйте его в какую-либо локальную папку.
3. Создайте папку Release в этой локальной папке.
4. Загрузите файл https://nodejs.org/dist/v6.10.0/win-x64/node.lib в папку Release.
5. Установите свойство nodedir в .npmrc, которое укажет на папку с распакованными заголовками:
nodedir = D:\tools\node_src\ node -v6.10.0-headers
Теперь npm устанавливает пакеты и node -gyp создает собственные пакеты без загрузки node заголовков и библиотек из Интернета.
Это правильный подход?
Я не могу найти в документации, что я должен загрузить node.lib и поместить его в каталог Release.
Я решил сделать это после анализа следов node -gyp и кода node -gyp.
Возможно ли установить расположение node.lib с использованием некоторого свойства npm_config_xxx?