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


123

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

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

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


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


28
Должен признать, я вижу модуль no npmjs, который использует node-gyp, я обычно бегаю за 10 миль
— PirateApp

38
Замечательно, что в настоящее время вы можете клонировать (что кажется) относительно простое веб-приложение, написанное на NodeJS, и внезапно вы должны загрузить программное обеспечение для компиляции собственного кода, написанного на C и C ++. Самое приятное - это когда вы сталкиваетесь с проблемами, и вы точно знаете, как их решить, используя свои навыки веб-дизайна.
— Джим Ахо

3
@ Mr-Programs
— Подключается

2
@JimAho В идеале, и часто, код просто черный ящик. Плюс в том, что вы можете использовать быстрые и хорошо поддерживаемые инструменты для выполнения определенных действий, таких как синтаксический анализ xml, и вам не нужно ждать порта js, который может быть медленнее или более сломанным. Тем не менее, я предпочитаю нативный js, когда это возможно, но я не уверен, что эта позиция обоснована. Кроме того, C / C ++ должен быть очень портативным для любого случая, который целенаправленно не зависит от ОС (например, уведомлений). Более того, пакеты, подверженные ошибкам, не получают широкого распространения, независимо от источника указанных ошибок.
— Адам Толли

3
К вашему сведению, я считаю, что «gyp» - это сокращение от «генерировать свои проекты»
— Том
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.