Как установить модуль node js

Как установить модуль node.js без использования npm?

Существует немало модhive, которые перечислены на странице github узла, но не опубликованы с реестром npm. Эти модули не могут быть установлены с использованием npm.

Каков правильный способ установки этих модhive nodejs после клонирования их из Git?

Вам нужно загрузить их источник из github. Найдите основной файл, а затем включите его в свой основной файл.

Пример этого можно найти здесь> Как вручную установить модуль node.js?

Обычно вам нужно найти источник и пройти через файл package.json. Там вы можете найти основной файл. Чтобы вы могли включить это в свое приложение.

Чтобы включить example.js в ваше приложение. Скопируйте его в папку приложения и добавьте в верхнюю часть основного файла js.

var moduleName = require("path/to/example.js")

Эти модули не могут быть установлены с использованием npm.

Фактически вы можете установить модуль, указав вместо имени локальный путь. Пока у репозитория есть действительный файл package.json он должен работать.

Тип npm -l и симпатичная справка будут выглядеть так:

CLI:

То, что привлекло мои глаза, было: npm install

В моем случае у меня были проблемы с модулем mrt поэтому я сделал это (во временном каталоге)

И я устанавливаю его глобально с помощью:

Наконечник:

Аналогичным образом можно установить репо в локальный проект npm с:

А также можно создать ссылку на репо, в случае необходимости заплатки в разработке:

Использование модулей Node.js с приложениями Azure

Этот документ содержит указания по использованию модулей Node.js с приложениями, размещенными в Azure. В нем описывается, как обеспечить использование конкретной версии модуля приложением и использовать собственные модули в Azure.

Возможно, вы уже знакомы с использованием модулей Node.js, файлов package.json и npm-shrinkwrap.json. Ниже приводится краткая сводка по тем вопросам, которые рассматриваются в этой статье.

Служба приложений Azure может считывать файлы package.json и npm-shrinkwrap.json и устанавливать модули на основании записей в этих файлах.

Облачные службы Azure ожидают, что все модули должны быть установлены в среде разработки, а каталог node_modules должен быть включен в пакет развертывания. Можно включить поддержку установки модулей с помощью файлов package.json или npm-shrinkwrap.json в облачных службах, однако для такой конфигурации требуется настройка сценариев по умолчанию, используемых проектами облачных служб. Пример того, как настроить эту среду, см. в записи блога Azure Startup task to run npm install to avoid deploying node modules (Задача запуска Azure для выполнения установки npm во избежание развертывания модулей узла).

В данной статье не рассматриваются виртуальные машины Azure, так как процедура развертывания на виртуальной машине зависит от операционной системы, размещенной в этой виртуальной машине.

Модули Node.js

Модули — это загружаемые пакеты JavaScript, предоставляющие вашему приложению определенные функциональные возможности. Модули обычно устанавливаются с помощью программы командной строки npm, однако некоторые из них (например, HTTP-модуль) предоставляются в составе основного пакета Node.js.

Установленные модули сохраняются в каталоге node_modules, находящемся в корне структуры каталогов приложения. У каждого модуля в каталоге node_modules есть собственный каталог, который содержит все модули, от которых он зависит. Такие каталоги есть у каждого модуля в цепочке зависимостей. Эта среда позволяет каждому установленному модулю иметь собственные требования к версиям модулей, от которых он зависит, однако это может привести к слишком большому размеру структуры каталогов.

Когда каталог node_modules развертывается в составе приложения, размер развертывания становится больше, чем при использовании файла package.json или npm-shrinkwrap.json, однако это гарантирует, что в рабочей среде используются те же версии модулей, что и в среде разработки.

Собственные модули

Хотя большинство модулей представляют собой просто текстовые файлы JavaScript, некоторые модули являются двоичными образами, предназначенными для конкретной платформы. Такие модули обычно компилируются во время установки, обычно для этого используется Python и node-gyp. Так как облачные службы Azure полагаются на развертывание папки node_modules в составе приложения, любой собственный модуль, входящий в состав установленных модулей, должен работать в облачной службе при условии, что он был установлен и скомпилирован в системе разработки Windows.

Служба приложений Azure не поддерживает все собственные модули и может сообщать об ошибках при компиляции модулей со специфическими предварительными требованиями. Хотя у некоторых популярных модулей, например MongoDB, имеются дополнительные собственные зависимости, и они прекрасно работают без них, было найдено два обходных решения, подходящих почти для всех собственных модулей, доступных в настоящее время:

Выполните npm install на компьютере под управлением Windows, на котором установлены все необходимые компоненты собственного модуля. Затем разверните созданную папку node_modules как часть приложения в службе приложений Azure.

  • Перед компиляцией убедитесь, что локальная установка Node.js имеет соответствующую архитектуру и версию, максимально близкую к той, которая используется в Azure (текущие значения можно проверить в среде выполнения из свойств process.arch и process.version).

Службу приложений Azure можно настроить для выполнения пользовательских сценариев Bash или сценариев оболочки во время развертывания, что дает возможность выполнять пользовательские команды и точно настроить способ выполнения npm install . Видео о том, как настроить такую среду, см. по этой ссылке: Custom Web Site Deployment Scripts with Kudu (Пользовательские сценарии развертывания веб-сайтов с использованием Kudu).

Использование файла package.json

С помощью файла package.json можно указать зависимости верхнего уровня, необходимые вашему приложению, чтобы платформа размещения могла установить зависимости, а не требовать от вас включить папку node_modules в состав развертывания. После развертывания приложения используется команда npm install, чтобы проанализировать файл package.json и установить все указанные зависимости.

Во время разработки можно использовать параметры —save, —save-dev или —save-optional при установке модулей, чтобы автоматически добавить запись для модуля в файл package.json. Дополнительные сведения см. в разделе с описанием npm-install.

Одна потенциальная проблема с файлом package.json заключается в том, что он указывает версию только для зависимостей верхнего уровня. Каждый установленный модуль может указать или не указывать версию модулей, от которых он зависит, поэтому в результате вы можете получить иную цепочку зависимостей, чем в среде разработки.

Если при развертывании приложения в службе приложений Azure ваш файл package.json ссылается на собственный модуль, то может отобразиться ошибка, аналогичная той, что возникает при публикации приложения с помощью Git:

npm ERR! module-name@0.6.0 install: ‘node-gyp configure build’

npm ERR! ‘cmd "/c" "node-gyp configure build"’ failed with 1

Использование файла NPM-shrinkwrap. JSON

Файл npm-shrinkwrap.json представляет собой попытку устранения ограничений управления версиями модуля для файла package.json. Хотя файл package.json содержит только версии модулей верхнего уровня, файл npm-shrinkwrap.json содержит требования к версиям для всей цепочки зависимостей модулей.

Когда приложение будет готово к перемещению в рабочую среду, можно заблокировать требования к версии и создать файл npm-shrinkwrap.json с помощью команды npm shrinkwrap. Эта команда будет использовать версии, установленные в папке node_modules, а их запись будет производиться в файл npm-shrinkwrap.json. После развертывания приложения в среде внешнего размещения используется команда npm install, чтобы проанализировать файл npm-shrinkwrap.json и установить все указанные зависимости. Дополнительные сведения см. в статье о npm-shrinkwrap.

Если при развертывании приложения в службе приложений Azure ваш файл npm-shrinkwrap.json ссылается на собственный модуль, то может отобразиться ошибка, аналогичная той, что возникает при публикации приложения с помощью Git:

npm ERR! module-name@0.6.0 install: ‘node-gyp configure build’

npm ERR! ‘cmd "/c" "node-gyp configure build"’ failed with 1

Как установить частный модуль NPM без моего собственного реестра?

Я взял общий код и поместил его в модуль NPM, который я не хочу загружать в центральный реестр. Вопрос в том, как мне установить его из других проектов?

Очевидный способ — это, вероятно, создать свой собственный реестр NPM, но, согласно документации, это связано с множеством хлопот.

Могу ли я просто установить модуль NPM, который находится в локальной файловой системе или, возможно, даже из git?

14 ответов

somedir должен содержать внутри package.json .

Он тоже знает о git:

Фактически он устанавливает для этой строки registry = "https://path-to-your-registry" значение /Users/<ur-machine-user-name>/.npmrc

Все значения, которые вы установили явно или были установлены по умолчанию, можно увидеть по — npm config list

Конфигурация для установки из общедоступного репозитория Github, даже если компьютер находится под брандмауэром:

Для этой цели вы можете использовать Verdaccio, который представляет собой легкий частный реестр прокси-серверов npm, созданный на Node.js. Также он бесплатный и с открытым исходным кодом. Использование Verdaccio не требует столько хлопот, как обычный частный реестр npm.

Вы можете найти подробную информацию о том, как установить и запустить его на их веб-сайте, но вот шаги :

Требуется node >=8.x .

У него также есть докер, поэтому вы можете легко опубликовать его в своем общедоступном докере, и вуаля у вас есть частный репозиторий npm, который можно распространять среди других таким образом, как вы его настраиваете!

Я использую следующее с частным репозиторием github:

Начиная с ответа arcseldon, я обнаружил, что имя команды необходимо в URL-адресе следующим образом:

И обратите внимание, что ключ API доступен только для команды, а не для отдельных пользователей.

Npm теперь предоставляет неограниченное количество частных размещенных модулей по цене 7 долларов США за пользователя в месяц.

В вашем пакете json установлен "name": " @username/private-project"

Затем потребовать ваш проект:

Структурируйте свой код доступным способом, как показано ниже. Если это возможно для вас.

  • NodeProjs \ Apps \ MainApp \ package.json

  • NodeProjs \ Modules \ DataModule \ package.json

В MainApp @ NodProjs \ Apps \ MainApp \

Вам может потребоваться обновить package.json как:

Это сработало в моей ситуации.

Это . (и это только из их документов)

Затем cd в каталог вашего модуля и .

Наконец, вы можете устанавливать пакеты из reggie, просто используя этот URL-адрес либо в прямой команде установки npm, либо изнутри package.json . вот так

FWIW: У меня были проблемы со всеми этими ответами, когда я имел дело с репозиторием частной организации.

Для меня сработало следующее:

Я не совсем уверен, почему другие ответы не сработали для меня в этом одном случае, потому что это то, что я пробовал сначала , прежде чем я нажал на Google и нашел этот ответ. И другие ответы — это то, что я делал в прошлом.

Надеюсь, это поможет кому-то другому.

Обновление, январь 2016 г.

В дополнение к другим ответам иногда бывает сценарий, в котором вы хотите, чтобы частные модули были доступны в контексте группы.

И Github , и Bitbucket поддерживают концепцию создания командного ключа API . Этот ключ API можно использовать в качестве пароля для выполнения запросов API от имени этой группы.

В своих частных модулях npm добавьте

В ваш package.json

Затем, чтобы ссылаться на частный модуль в другом модуле, используйте его в своем package.json.

Где team name = myteamname и API Key = aQqtcplwFzlumj0mIDdRGCbsAq5d6Xg4

Здесь я ссылаюсь на репозиторий bitbucket, но он также почти идентичен с использованием github.

Наконец, в качестве альтернативы, если вы действительно не против платить 7 долларов в месяц (на момент написания), теперь вы можете иметь частные модули NPM прямо из коробки.

Могу ли я просто установить пакет NPM, который находится в локальной файловой системе или, возможно, даже из git?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *