@kari_morozova
@icerlyЕсли вы пытаетесь поставить npm пакет глобально (с флагом -g) то возможно потребуется запустить команду из-под sudo лучше использовать npx
2022-03-26 07:07:00
@p_himikРешение на все случаи жизни - не устанавливайте пакеты NPM глобально. Никакие. Вот прям вообще.
Устанавливайте локально, а если они хотят, чтобы вы пользовались их командами, запускайте их через npx.
sudo использовать не надо. Мы про NPM говорим, а не про пакеты здорового человека.
Устанавливайте локально, а если они хотят, чтобы вы пользовались их командами, запускайте их через npx.
sudo использовать не надо. Мы про NPM говорим, а не про пакеты здорового человека.
2022-03-25 18:50:18
@icerlyСогласен, совет так себе, поторопился. Даже офф дока https://docs.npmjs.com/downloading-and-installing-packages-globally советует теперь использовать npx. Я просто давно фронт не трогал, отстал от трендов
2022-03-25 18:51:18
@p_himikЕсли хочется душераздирающих историй, посмотрите новости последних недель по node-ipc. :)
2022-03-25 18:52:40
@icerlyВидел. Прискорбное сумашествие конечно :(
2022-03-25 18:53:07
@p_himikИ в глобальном плане это - не исключение, а следствие неадекватности экосистемы.
В данном случае, кстати, и без sudo можно неплохие проблемы заработать. Один знакомый уже зарёкся npm только внутри докера запускать.
В данном случае, кстати, и без sudo можно неплохие проблемы заработать. Один знакомый уже зарёкся npm только внутри докера запускать.
2022-03-25 18:54:32
@alexeysetevoiДык, давно пора.
2022-03-25 19:53:10
@icerlyСистема то адекватна на мой взгляд. А вот люди некоторые не очень и получаем случаи с node-ipc :) Сам npm вроде норм как экосистема. Или вы про модерацию говорите или что-то подобное?
2022-03-25 18:57:19
@stepanseliukПакеты локать надо, а не последние выкачивать )) особенно на проде
2022-03-25 18:58:13
@icerlyТак вроде npm уже давно лочит версии, разве нет? Они же вслед за yarn побежали в этом плане почти сразу
2022-03-25 18:59:38
@stepanseliukКто-то лок файл в гит не пушит ))
2022-03-25 19:00:29
@p_himikОн-то лочит. Но работает это только если вы используете npm ci для CI/CD, а не npm i, как каждый первый. :)
2022-03-25 20:05:44
@saitonakamuraНу вообще npm i писать будет только если в локфайле отсутствует необходимый пакет
По идее такая ситуация возникать не должна, равно как отсутствие локфайла в принципе
2022-03-25 19:07:49
@p_himikНеверно. Я вот только что проверил - в старом проекте запустил npm i. Внезапно package-lock.json поменялся.
npm ci отработал правильно - никакие файлы не поменялись.
npm ci отработал правильно - никакие файлы не поменялись.
2022-03-25 19:09:11
@saitonakamuraА какая версия npm и локфайла?
2022-03-25 19:11:14
@p_himik8.1.2 и 1.
2022-03-25 21:54:21
@p_himikДополню, что integrity никаких пакетов не поменялся.
Я удивлён, если честно, но рассчитывать на подобное поведение я, конечно, не буду - история поведения npm в разных случаях не позволяет.
Я удивлён, если честно, но рассчитывать на подобное поведение я, конечно, не буду - история поведения npm в разных случаях не позволяет.
2022-03-25 19:23:11
@p_himikВы имели дело с пакетами в *nix и с Maven?
В первом случае более чем суровая модерация, более строгие правила резолва.
Во втором случае невозможность исполнения кода во время устрановки.
Когда глобальное техническое решение даёт раздолье человеческому фактору, то такое решение лично я считать адекватным не могу.
2022-03-25 18:59:55
@icerlyС maven дела не имел, но и в pypi не упомню такого поведения (хотя и строгой модерации там также нет). Так что да, исполнение кода при установке, выглядит и правда не сильно безопасно.
2022-03-25 19:02:44
@p_himikВ PyPI это регулярно происходило и, я почти уверен, в какой-то степени происходит. Я давно ушёл из шоубизнеса плотной разработки на Питоне, но несколько лет назад было много шуму от того, что наконец нашли кучу пакетов, мимикрирующих под нормальные, но имеющие опечатки в имени - padnas вместо pandas, типа того. И код там был тоже такой, с "опечатками" - опять же, кто во что горазд.
2022-03-25 19:05:07
@saitonakamuraЕсть и третий вариант, в ~ сделать что-то вроде .npm-global , прописать его в npmrc и path
И пакеты сыты и файлы целы
2022-03-25 18:54:31
@p_himikМожно, но сложно - больше движущихся частей, надо что-то настраивать, легко сломать. А человеку - видно же, - надо попроще.
2022-03-25 18:55:40
@saitonakamuraНу cli конечно лучше через npx, согласен
У меня глобально так всякие lsp стоят
2022-03-25 18:56:36
@stepanseliukКоманду в студию )) которая не работает
2022-03-25 18:56:06
@kari_morozovanpm install -g @vue/cli
2022-03-25 19:07:59
@p_himikПросто сделайте npm i @vue/cli, а потом, если что-то просит запустить команду от Vue (например, vue ui), добавляйте в начало npx (например, npx vue ui).
2022-03-25 19:10:19
@kari_morozovaСпасибо) сейчас попробую
2022-03-25 19:11:50
@stepanseliukДа как уже ответили, для -g нужно либо sudo (что опасно), либо npx вместо npm, либо в докере гонять
2022-03-26 05:50:04
@kari_morozovaSudo не помогло)
2022-03-25 19:11:04
