Как сделать, чтобы node-gyp не скачивал node-headers.tar.gz и node.lib из интернета?
node-gyp скачивает из интернета такие файлы во время инсталяции нативных npm модулей типа iconv, ref, etc:
https://nodejs.org/download/release/...headers.tar.gz https://nodejs.org/download/release/...n-x86/node.lib https://nodejs.org/download/release/...n-x64/node.lib https://nodejs.org/download/release/...SHASUMS256.txt Как сделать так, чтобы node-gyp брал эти файлы из локальной папки? Пока я решил эту проблему вот так так: 1. Скачал https://nodejs.org/download/release/...headers.tar.gz 2. Распаковал этот архив в локальную папку. 3. В этой новой папке создал папку Release. 4. Скачал в папку Release файл https://nodejs.org/dist/v6.10.0/win-x64/node.lib 5. В .npmrc добавил свойство nodedir, которое указывает на папку node-v6.10.0-headers: nodedir=D:\tools\node_src\node-v6.10.0-headers Теперь npm инсталит пакеты и node-gyp билдит нативные пакеты без вытаскивания дополнительных нодовских файлов из интернета. Это правильный подход? Или надо делать как-то по другому? Меня беспокоит, что нигде в документации не написано, что надо скачивать node.lib и класть его в папку Release. Я сделал это на основании анализа трейсов и кода. Может более правильно конфигурить путь к файлу node.lib через какие-то свойства npm_config_xxx? |
Я бы просто в кеш добавил модули и все будет тянуться из кеша https://docs.npmjs.com/cli/cache
|
Проблема не в модулях.
Для того чтобы node-gyp сделал ребилд нативным модулям, ему нужны нодовские хедера и node.lib. Эти файлы в кеш не положишь. |
Или я не понял вашего ответа.
|
Модули у меня качаются из нексуса указанного в свойстве registry в .npmrc:
registry=http://nexus..../content/groups/npm-all/ Теперь мне надо сделать так, чтобы я мог на билдмашинах распаковать хедера и node.lib и запретить npm/node-gyp ходить за этими файлами в интернет. Проблема в том, что на билдмашинах доступ в инет порезан. И сайт https://nodejs.org/download/release недоступен. Все нужные файлы, за исключением npm пакетов нужно иметь локально. |
Оу, это да. Мой пост не корректен. Прошу прощения.
|
Часовой пояс GMT +3, время: 13:19. |