Чтобы ответить на ваши вопросы:
npm
получает их из реестра пакетов NPM, как и yarn
, но Yarn, вероятно, имеет перед ним реестр прокси. В общем, вы можете сказать, что оба инструмента по умолчанию извлекают свои пакеты из https://npmjs.com. - Он получает пакет в том виде, в котором он был опубликован (так что, вкратце, ответ «raw» «). Сборка зависит от издателя и зависит от типа упаковки. Часто какая-то задача
prepublish
встраивает что-то в dist/
(или любое другое место в пакете), и эти файлы также поставляются вместе с пакетом, который затем загружают другие. Сборка редко происходит после установки пакета (исключение составляют библиотеки-пакеты, созданные с помощью node-gyp). - Поле репозитория не является обязательным, насколько мне известно, но целесообразно включить его (оно будет например, на веб-сайте NPM).
- Технически, да. Вы можете просто указать любой репозиторий в
repository
, но не имеет смысла указывать тот, который не является источником пакета.
Если вы вообще хотите прочитать больше о том, как npm
работает, посмотрите документацию по https://docs.npmjs.com/