Що таке вузол-гіп


123

Хто-небудь може мені пояснити, що таке node-gypі чому він використовує мої системні файли для створення пакетів Node.JS.

  1. Якщо Ii будує проект вузла, він використовується 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.
Kzqai

@slebetman перехід на іншу версію вузла не буде працювати, не впевнений, що це на 100% правда, але, з мого досвіду, вам потрібно видалити старий node-gyp після оновлення версії nodejs і під час встановлення модулів він буде автоматично відновлюватися у фоновому режимі.
Лукас Лейсіс

Відповіді:


134

node-gypце інструмент, який компілює Node.js Addons. Node.js Addons - це рідні модулі 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
Треба визнати, я бачу модуль без npmjs, який використовує node-gyp, я зазвичай бігаю за 10 миль
PirateApp,

38
Захоплююче те, що сьогодні ви можете клонувати відносно простий веб-додаток, написаний на NodeJS, і раптом вам потрібно завантажити програмне забезпечення для компіляції нативного коду, написаного на C і C ++. Найкраще - це коли ти стикаєшся з проблемами, і ти точно знаєш, що робити з навичками веб-дизайну для вирішення цього питання.
Джим Ахо

3
@ Mr-Programs Це пов'язано через прив'язку, яку також вам потрібно написати
vuza

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

3
FYI, я вважаю , «лавочка» коротка для «створення своїх проектів»
Том
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.