Npm для установки пакетов из локальной позиции, а не из Интернета?

Проблема сводила меня с ума, в базе данных npm есть пакет, но у него есть некоторые ошибки, которые уже исправлены в github, как я могу использовать фиксированную версию (версия github)?

Ответ 1

Edit:

Вы можете установить непосредственно из репозитория GitHub, даже используя имя пользователя GitHub и имя репозитория:

npm install LearnBoost/socket.io

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

npm install LearnBoost/socket.io#1.7.x

Без протокола это будет интерпретироваться как git://github.com/LearnBoost/socket.io. Вы также можете префикс репо с gitlab:, gist: или bitbucket:, соответственно. Для получения дополнительной информации см. Использование git URL-адресов в качестве зависимостей.

Вы можете установить прямо из URL-адреса, например:

npm install https://github.com/LearnBoost/socket.io/tarball/master

URL-адрес Github можно найти в разделе "Загрузки" на любой странице проекта. Выберите ссылку "Загрузить как tar.gz".

Или вы можете установить tarball:

npm install foo.tar.gz

См. npm install (1).

Edit:

Я должен упомянуть, что это работает одинаково хорошо в файлах package.json. Укажите URL вместо версии в ваших зависимостях, например:

...
"dependencies": {
  "foo": "http://example.com/foo.tar.gz",
  "bar": "1.2.x",
  ...
}

Ответ 2

Другое временное решение, получить проект github и использовать npm link (http://npmjs.org/doc/link.html), чтобы связать локальную папку, полученную с помощью git в папку node_modules в вашем собственном проекте. В любом случае, вам придется подождать, пока разработчик проекта сделает npm publish.

Ответ 3

Либо добавьте модуль как подмодуль git (используя git подмодуль) в ваш проект или сообщите разработчику модуля обновить версию и запустить npm publish для обновления репозитория npm.

При использовании способа субмодуля, помните, что вы не можете обновить ссылку с помощью команд npm.