Ответ 1
в хранилище npm-github была запрошена проблема, запрашивающая эту функцию.
читайте здесь: https://github.com/npm/npm/issues/2943
Я хочу установить определенную ревизию из tar файла github с именем "mymodule" и называть его чем-то вроде "mymoduleTemp", а затем загрузить потенциально другую версию, которая будет принимать настоящее имя "mymodule".
Итак, как мне сделать первое? Я ищу что-то вроде:
npm install https://github.com/me/mymodule/tarball/someTag -name mymoduleTemp
Есть ли способ сделать это? Приятно иметь:
в хранилище npm-github была запрошена проблема, запрашивающая эту функцию.
читайте здесь: https://github.com/npm/npm/issues/2943
Начиная с [email protected]
вы можете установить пакет под произвольным именем модуля. [email protected]
представляет поддержку для псевдонимов пакетов.
Чтобы установить tarball под произвольным именем модуля, используйте аргумент [email protected]
, например, установить специальный express
тарбол как модуль my-express
:
npm i [email protected]://github.com/expressjs/express/archive/4.16.3.tar.gz
Эта функция также позволяет создавать псевдонимы пакетов, опубликованных в реестре npm:
npm i [email protected]:@my-scope/express
Вы можете сделать это:
name
на package.json
на @me/mymoduleTemp
(вы можете пропустить шаги 1 и 3, отредактировав tarball на месте с помощью vim mymoduleTemp.tgz
)mymoduleTemp.tgz
npm publish mymoduleTemp.tgz
(с --access public
, если вы не хотите, чтобы он был ограничен)npm install @me/mymoduleTemp
Я бы рекомендовал опубликовать его как облачный пакет, потому что, если вы опубликуете его как незапечатанный mymoduleTemp
, тогда никто не сможет используйте это имя.
Если вы считаете, что даже публикация пакетов с ограниченным доступом загрязняет реестр npm, вы можете просто поместить новый tarball на свой собственный частный сервер (или в GitHub или где угодно) и установить его через URL.
Специально для браузера вы можете добавить псевдоним в package.json
https://github.com/defunctzombie/package-browser-field-spec
например:
{
....
"browser": {
"someTag": "mymoduleTemp"
}
}
Это также работает для "реакции-нативного" с метро. Я никогда не тестировал с пачками веб-пакетов.
в новых версиях npm теперь возможно псевдоним имени модуля с помощью
npm i <alias_name>@npm:<original_package_name>