Есть ли способ узнать, соответствует ли пакет npm требованиям к сборке ОС? - PullRequest
2 голосов
/ 20 июня 2019

У некоторых узловых модулей есть определенные требования к установке платформы. Например, node-sass: https://www.npmjs.com/package/node-sass#install нельзя построить на Mac и использовать в Windows или Linux. Он может работать на Windows, но только если вы создаете его на Windows. Из-за его зависимости node-gyp он должен быть специально построен на платформе, для которой вы собираетесь его запускать.

Тогда как у lodash такой сложности нет.

Существует ли какой-либо (в идеале, автоматический или программный) способ узнать, какие пакеты работают как node-sass, а какие - как lodash, кроме чтения документации для каждого пакета / экспериментов вручную?

Я хочу смонтировать мой каталог node_modules в док-контейнер, но я хочу установить мои модули узла локально на хосте. Это не работает для любых модулей, таких как node-sass.

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Вы можете проверить package.json для os, а также, если пакет нужно собрать, как ответ здесь Node.js / npm - в любом случае, чтобы узнать, является ли пакет чистым JS или нет? Но в целом, неправильно устанавливать локальные модули node_modules на хосте и монтировать его в соответствии с основной идеей docker - запускать один и тот же образ в любом месте с нулевой конфигурацией или зависимостью

0 голосов
/ 20 июня 2019

Файл package.json должен указывать любые ограничения ОС, которые имеет пакет, используя свойство os, например, "os" : [ "darwin", "linux" ] или даже "os" : [ "!win32" ].

Сказав это, нет никакого реального способа принудительного использования этого свойства, и автор пакета может просто пропустить (или забыть!) Указать свойство os в файле package.json, но при этом написать пакет, который будет работать только на определенной операционной системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...