Node.js Policy: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{h0|Policy по упаковке модулей nodejs}} | {{h0|Policy по упаковке модулей nodejs}} | ||
{{DraftPolicy|responsible=lav}} | {{DraftPolicy|responsible=lav}} | ||
''Важно учитывать, что модулей для node (npm-пакетов) многие тысячи, и никакого смысла собирать в репозиторий в виде rpm-пакетов их нет, тем более невозможно учесть разницу в версиях.'' | |||
''Необходимо собирать в пакеты только те модули, которые требуют компиляции (с системными библиотеками), а также модули, которые являются программами в /usr/bin (например, npm, yarn, sass, node-gyp и подобное).`` | |||
* При сборке пакетов для node следует использовать макросы из пакета {{pkg|rpm-macros-nodejs}}. | * При сборке пакетов для node следует использовать макросы из пакета {{pkg|rpm-macros-nodejs}}. |
Версия от 20:45, 6 февраля 2020
Policy по упаковке модулей nodejs
Важно учитывать, что модулей для node (npm-пакетов) многие тысячи, и никакого смысла собирать в репозиторий в виде rpm-пакетов их нет, тем более невозможно учесть разницу в версиях. Необходимо собирать в пакеты только те модули, которые требуют компиляции (с системными библиотеками), а также модули, которые являются программами в /usr/bin (например, npm, yarn, sass, node-gyp и подобное).``
- При сборке пакетов для node следует использовать макросы из пакета rpm-macros-nodejs.
- Название пакета с модулем для node: nodejs-<имя>.
Традиционно принято в качестве префикса использовать название языка. Так в репозитории Сизиф есть пакеты erlang-*, python-*, perl-*, java-*.[1].
Размещение модуля в иерархии файловой системы
- %nodejs_sitelib/<имя> — размещение модуля <имя>.
В каталоге с модулем не должно быть архитектурно-зависимых библиотек, всегда должны использоваться системные.
Макросы из rpm-macros-nodejs
- %nodejs_sitelib — каталог для размещения модулей.
- %nodejs_arches — список архитектур, на которых поддерживается nodejs.
Пример
Пример пакета с модулем можно посмотреть здесь:
- ↑ Интересно, что в Fedora node упакован в пакет node, а модули — в пакеты nodejs-*. А в Ubuntu наоборот, node в пакете nodejs, а модули в пакетах node-*.