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

115

Есть довольно много модулей, которые перечислены на странице узла github, но не публикуются в npm-registry. Эти модули нельзя установить с помощью npm.

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

vivekian2
источник

Ответы:

73

Вам необходимо скачать их исходный код с гитхаба. Найдите основной файл и включите его в свой основной файл.

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

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

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

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

neebz
источник
1
Можно ли импортировать скрипт с внешнего URL (например var myscript = require("http://www.mywebsite.com/myscript.js"))? Похоже, эта requireфункция не работает для внешних URL-адресов.
Андерсон Грин
2
require на самом деле синхронный, поэтому нет, он не работает для внешних URL-адресов.
Крис Таварес
Примечание: вам необходимо удалить -masterдобавленные к github библиотеки; как в замене xxx-masterна xxx.
BAR
65

Эти модули нельзя установить с помощью npm.

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


Типа, npm -lи появится симпатичная справка:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

Что бросилось в глаза, было: npm install <folder>

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

  • Клонировать репо

     git clone https://github.com/oortcloud/meteorite.git
  • И я устанавливаю его глобально с помощью:

     npm install -g ./meteorite

Наконечник:

Таким же образом можно установить репо в локальный проект npm с помощью:

     npm install ../meteorite

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

     npm link ../meteorite
Тибериу К.
источник
1
самый превосходный. У меня тоже были проблемы с модулем, поэтому я раздвоил и клонировал его в родственный каталог моего веб-проекта, обновил все его зависимости до последних версий, а затем установил его в свой веб-проект с помощью 'npm install ../ broken_module_name Это сработало как шарм. Спасибо!
Перри Тью
+1, но это не сработает, если у нас нет доступа к сети для npm, а модуль, который мы устанавливаем, npm install <folder>имеет множество других зависимостей от npm.
Абдул Рауф
Если npm находит пакет в node_modules, либо из глобальной (здесь не уверен), либо из локальной области, он не будет пытаться загрузить его снова. Это означает, что если все прямые зависимости репо можно предварительно загрузить и скопировать в папку node_module, тогда он будет работать.
Tiberiu C.
11

Загрузите код с github в каталог node_modules

var moduleName = require("<name of directory>")

это должно сработать.

если у модуля есть зависимости и есть package.json, откройте модуль и введите npm install.

Надеюсь это поможет

iancrowther
источник
Я думаю, что этот код работает, если основной файл названindex.js
R3tep
8

Вы можете клонировать модуль прямо в свой локальный проект.

Запустить терминал. cd в свой проект, а затем:

npm установить https://github.com/repo/npm_module.git --save

Molnfront
источник
1
Ответ, который я искал.
Faisal Mq
Что происходит при изменении пакета, как обновить его до последней версии? Банкомат, единственное «решение», которое я нашел, - это удалить фодлер из node_modules, удалить запись package.json и повторно добавить, что является
Предраг Стоядинович
1

Шаг за шагом:

  • Допустим, вы работаете над проектом , use-gulpкоторый использует ( requireы) , node_modulesкак gulpи gulp-util.
  • Теперь вы хотите внести некоторые изменения в gulp-utillib и протестировать ее локально в своем use-gulpпроекте ...
  • Форк- gulp-utilпроект на github \ bitbucket и т. Д.
  • Переключитесь на свой проект: cd use-gulp/node_modules
  • Клонировать gulp-utilкак gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Выполните, npm installчтобы убедиться, что зависимости gulp-util-devдоступны.
  • Теперь у вас есть зеркало gulp-utilas gulp-util-dev. В своем use-gulpпроекте теперь вы можете заменить: require('gulp-util')...;call на:, require('gulp-util-dev')чтобы проверить изменения, внесенные вgulp-util-dev
Викрам
источник