Зачем использовать webpack-node-externals в узле? - PullRequest
0 голосов
/ 09 октября 2018

Я использую веб-пакет для связывания моего кода typj nodejs.

Я использую webpack-node-externals, чтобы избежать ошибок в node_modules во время компиляции.

webpack-node-externals говорит, что позволяетопределить внешние - модули, которые не должны быть в комплекте.

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

Если я использую webpack-node-externals, мне нужно будет сделать npm i в моей папке prod, чтобы получить все зависимости.

Я думаю этоможет упустить момент веб-пакет может сделать.право

1 Ответ

0 голосов
/ 11 июня 2019

Я думаю, вы правы, что в вашем случае объединение в один файл имело бы больше смысла.webpack-node-external, похоже, предназначен для использования библиотек NodeJS, а не автономных приложений.Из их doc :

Например, при написании библиотеки узлов вы можете разделить код на несколько файлов и использовать Webpack для их объединения.Однако - вы не захотите связывать свой код с его полными зависимостями node_modules по двум причинам:

  1. Это приведет к тому, что ваша библиотека будет раздуваться по npm.
  2. Это идет против всего npmуправление зависимостями.Если вы используете Lodash, и у потребителя вашей библиотеки такая же зависимость от Lodash, npm гарантирует, что он будет добавлен только один раз.Но включение Lodash в вашу библиотеку фактически сделает его включенным дважды, поскольку npm больше не управляет этой зависимостью.

Как пользователь библиотеки, я хочу, чтобы код библиотеки включал только ее логику, ипросто укажите его зависимости, чтобы они могли быть объединены / разрешены с остальными зависимостями в моем проекте.Объединение вашего кода с вашими зависимостями делает это практически невозможным.

Я не согласен с комментариями, которые предполагают, что Webpack не был разработан для объединения скриптов Node, , учитывая, что в Webpack есть особые настройки именно для этого (* * тысяча двадцать-одина) .К сожалению, существует слишком много сторонних библиотек, которые плохо работают с Webpack (как я только что обнаружил сегодня), так что, прагматично говоря, вам все равно лучше устанавливать модули в папку дистрибутива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...