Лучшая практика загрузки модуля npm, который не является основным

#jquery #node.js #module #npm #loading

#jquery #node.js #модуль #npm #Загрузка

Вопрос:

Когда я подключаю jQuery с помощью npm install jquery , я могу загружать их, например, с помощью Webpack, подобного var jQuery = require('jquery') .

Это позволит проверить наличие модуля в node_modules, а в случае jQuery в комплект поставки входит package.json "main": "dist/jquery.js" .

Пока все ясно, нет необходимости указывать конкретный путь, подобный require('../node_modules/jquery/dist/jquery.js') .

Но, допустим, мне нужно загрузить уменьшенную версию jQuery, которая включена в тот же /dist каталог.

Мои идеи по этому поводу таковы:

  1. отредактируйте основную запись package.json файла, что не очень хорошо, потому что она будет перезаписана, если я добавлю новую версию с помощью npm
  2. укажите Webpack полный путь к файлу, например require('../node_modules/jquery/dist/jquery.min.js')

Способы работы с ботами кажутся не совсем чистыми. Есть ли лучший способ сделать это?

Ответ №1:

Если вы действительно хотите это сделать, то вы можете сделать require('jquery/some/other/file') . В вашем конкретном случае я не уверен, зачем вам загружать уменьшенную версию; если это интерфейсный проект, предположительно, вы все равно уменьшаете конечный пакет (ы).

Комментарии:

1. Уменьшенная версия — это только пример, существует множество полезных вариантов использования, таких как уменьшенная версия.

2. Достаточно справедливо. Мне кажется, что если бы модуль хотел предоставить вам что-то, он бы это сделал. Я ценю, что вы считаете, что существуют допустимые варианты использования, и в этом случае метод, показанный в моем ответе, является тем, как я видел, как это делается, и кажется «самым приятным». Вы правы, что не хотите изменять package.json. Однако вы могли бы разветвить пакет, изменить package.json, чтобы указать на slim-версию, и установить ее вместо этого. Возможно, кто-то даже уже это сделал — стоит поискать npm.