Comments 8
Добавлю. Свойство private, установленное в true, не только предотвращает случайнубю публикацию — но еще и убирает предупреждения об отсутствующих свойствах description, repository и license.
Итак, кто-то пытается инициализировать проект, пользуясь командой npm install. При выходе новых версий пакетов окажется, что этот проект отличается от исходного
С чего это, если я в package.json укажу конкретную версию?
Потому что у зависимостей в package.json есть свои зависимости. Для которых чаще всего не прописана конкретная версия.
Файл package.json поддерживает возможность описания команд (скриптов), запускать которые можно с помощью такой конструкции: npm <task-name>

В какой версии npm это можно? Попробовал в самом последнем релизе 6.4.1 запустить npm watch, не работает.


Обычно команды из секции scripts запускаются через "npm run <script-name>", например npm run watch — работает.

Так вроде хорошо начинали «директории», но не на долго хватило и поехали «папки»…
Вообще, npm — лютое «гомно». Для любого «прекрасного» пакета из тех over500k пакетов нужно выкачать не менее половины, как зависимости, а из этой кучи мусора, кто-то полезет в git или на sourceforge или еще куда. А тебе нужно собрать этот хлам в условиях закрытого контура.
Эта концепция не нова, менеджеры пакетов, применяемые в других языках программирования (вроде менеджера Composer в Python) используют похожую систему многие годы.


Composer — это же про PHP или я чего-то не знаю?
А если пакет «lodash» установлен глобально
npm install -g lodash
то как его подключить в своем проекте? Такой вид
lodash const _ = require('lodash')
отлично работает для локальных пакетов, для глобальных я так понял нужно указывать особый путь(p.s. под ОС Windows)
Лучше всего установить пакет локально. Глобальная установка — это антипаттерн в современном NPM.
Only those users with full accounts are able to leave comments. Log in, please.