Cli: [ФУНКЦИЯ] стандартная конфигурация для всех пакетов

Созданный на 15 мая 2020  ·  2Комментарии  ·  Источник: npm/cli

Я не уверен, возможно ли это, или это относится к репо Node.js.

Что почему

Часто бывают случаи, когда определенные зависимости требуют определенных конфигураций сборки для правильной работы во всей среде (например).

Эта конфигурация может быть конфигурацией Babel, конфигурацией Webpack или чем-то особенным только для этого пакета.

В настоящее время не существует стандартизированного способа настройки пакетов.

Некоторые люди используют соглашение, в котором они помещают поле в package.json названное в честь пакета, и пакет может это прочитать. Но это не кажется достаточно стандартным.

Когда

Когда пакету требуется настраиваемая конфигурация для времени выполнения или сборки.

Где

Как

Иногда в некоторых случаях JavaScript требует шагов сборки. Эта функция конфигурации будет иметь необязательный параметр «зависимости сборки», который можно передать любому пакету (независимо от того, собирают ли они собственные модули или просто переносят JavaScript в более низкую форму).

В зависимости от конфигурации пакету могут потребоваться определенные зависимости, которые в противном случае ему не понадобились бы (например, зависимости сборки).

Таким образом, система пакетов будет достаточно умной, поскольку, если у пользователя есть определенная конфигурация пакета, она может определить, какие дополнительные зависимости нужно установить.

Может быть, эту функцию просто нужно расширить с существующей системы собственных модулей до общей системы JavaScript (для простоты использования собственные модули сложны).

Это также может быть очень полезно для таких вещей, как необязательные зависимости. Было бы легко с помощью config указать, что библиотека использует (например) three вместо babylonjs . Это приведет к установке соответствующей зависимости. Это похоже на одноранговые зависимости, но проще, и данный пакет, который зависит от необязательных зависимостей, будет иметь стандартный способ надежного доступа к конфигурационному API, чтобы определить, указаны ли определенные условия (в настоящее время это сложно, и любое прохождение через кисту node_modules не- стандарт в этих случаях).

Текущее поведение

  • н / д

Ожидаемое поведение

  • покрыто выше на высоком уровне

В качестве другого примера, иногда потребителям пакетов необходимо использовать исходный код пакета вместо обычного скомпилированного вывода, чтобы скомпилировать код различными способами (обычно для меня я сталкиваюсь с желанием сделать это с помощью Webpack).

В общем, есть проблемы с подобными вещами, с которыми NPM пока не может справиться.

Кто

авторы пакетов и их пользователи

использованная литература

  • н / д
Enhancement

Самый полезный комментарий

Эта функция будет замечательной, потому что иногда разработчики сталкиваются с множеством трудностей при решении подобных проблем.

Все 2 Комментарий

Эта функция позволит авторам пакетов стандартным способом добавлять функции в свои пакеты, где они могут сказать: «О, вы хотите, чтобы CSS был внешним, а не встроенным в обычные файлы пакетов, нет проблем, просто добавьте такие- и-такой вариант в конфигурации вашего проекта, тогда этот пакет автоматически исключит любой CSS из своего вывода », а затем, учитывая эту стандартную конфигурацию, автор пакета может использовать Webpack, Babel или любой другой инструмент для достижения результата.

В этом смысле все пакеты будут иметь некоторый стандартный способ, позволяющий пользователям сообщать им параметры, где параметры могут диктовать альтернативные наборы зависимостей или этапы сборки, независимо от того, какие исходные файлы или инструменты сборки использует пакет.

На стороне пользователя будет конфигурация, но такие параметры будут соответствовать конфигурации на стороне пакета, которая будет диктовать зависимости (и, следовательно, инструменты сборки) для запуска во время установки или аналогичные.

Я мог видеть, что большинство пакетов затем отправляют исходный код по умолчанию, а некоторые пользователи настраивают его.

Часто бывает, что лучший способ получить исходный код TypeScript для компиляции с полными функциями, которые в противном случае не ограничиваются отправкой

TypeScript провозглашает, что потребители никогда не должны переносить исходный код TypeScript, но они вырыли яму, в которой это может быть необходимо из-за связанной проблемы. Я использую это только как один пример, когда стандарт конфигурации может быть очень полезен.

Эта функция будет замечательной, потому что иногда разработчики сталкиваются с множеством трудностей при решении подобных проблем.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги

Смежные вопросы

zypA13510 picture zypA13510  ·  4Комментарии

ahuglajbclajep picture ahuglajbclajep  ·  3Комментарии

Cohen-Carlisle picture Cohen-Carlisle  ·  4Комментарии

jaydenseric picture jaydenseric  ·  3Комментарии

chrisspen picture chrisspen  ·  3Комментарии