Что такое нод-гипп

123

Может ли кто-нибудь объяснить мне, что это такое node-gypи почему он использует мои системные файлы для создания пакетов Node.JS.

  1. Если я создаю проект узла и использую его node-gypвнутри.
  2. Затем я просто заархивировал этот проект и перешел на другую систему.
  3. Я разворачиваю его там и пытаюсь использовать

Будет ли этот подход работать?

selftaught91
источник
17
Он описан на его странице на github: github.com/nodejs/node-gyp . В принципе, node-gypнравится make. Это инструмент, используемый для управления процессом компиляции проектов C ++. Только он разработан специально для аддонов node.js (модулей, написанных на C ++). Таким образом, переход на другую систему может сработать, если она использует тот же процессор. Переход на другую ОС или ЦП (например, с x86 на ARM) не сработает. Для Linux переход на другой дистрибутив другой версии одного и того же дистрибутива может работать, а может и не работать. Я не уверен на 100%, сработает ли переход на другую версию node.js
slebetman
2
Когда я запускаю, yarn why node-gypон возвращается с: потому что node-sass, поэтому я уверен, что он имеет другие применения, но он может быть в вашем проекте, если вам или кому-то, кого вы любите, поставили диагноз sass.
Кзкай,
@slebetman, переход на другую версию узла, не сработает, не уверен, что это на 100% верно, но по моему опыту, вам нужно удалить старый node-gyp после обновления версии nodejs и во время установки модулей он автоматически перестраивается в фоновом режиме.
Лукас Лисис

Ответы:

134

node-gypэто инструмент, который компилирует надстройки Node.js. Аддоны Node.js - это собственные модули Node.js, написанные на C или C ++, поэтому их необходимо скомпилировать на вашем компьютере. После того, как они скомпилированы с помощью таких инструментов, как node-gyp, к их функциям можно будет получить доступ require(), как и к любому другому модулю Node.js.

Если вы сделаете то, что вы предложили, модуль не будет работать, вам нужно будет скомпилировать его / собрать с помощью node-gyp в системе, в которую вы переместили программу.

node-gyp: https://github.com/nodejs/node-gyp

Дополнения для Node.js: https://nodejs.org/api/addons.html

vuza
источник
28
Должен признать, я вижу модуль no npmjs, который использует node-gyp, я обычно бегаю за 10 миль
PirateApp
38
Замечательно, что в настоящее время вы можете клонировать (что кажется) относительно простое веб-приложение, написанное на NodeJS, и внезапно вы должны загрузить программное обеспечение для компиляции собственного кода, написанного на C и C ++. Самое приятное - это когда вы сталкиваетесь с проблемами, и вы точно знаете, как их решить, используя свои навыки веб-дизайна.
Джим Ахо
3
@ Mr-Programs
Подключается
2
@JimAho В идеале, и часто, код просто черный ящик. Плюс в том, что вы можете использовать быстрые и хорошо поддерживаемые инструменты для выполнения определенных действий, таких как синтаксический анализ xml, и вам не нужно ждать порта js, который может быть медленнее или более сломанным. Тем не менее, я предпочитаю нативный js, когда это возможно, но я не уверен, что эта позиция обоснована. Кроме того, C / C ++ должен быть очень портативным для любого случая, который целенаправленно не зависит от ОС (например, уведомлений). Более того, пакеты, подверженные ошибкам, не получают широкого распространения, независимо от источника указанных ошибок.
Адам Толли
3
К вашему сведению, я считаю, что «gyp» - это сокращение от «генерировать свои проекты»
Том