Создание веб-пакета для производства - минимизированные зависимости
Скажем, на npm есть модуль под названием "awesomepackage". Я могу зарегистрировать это как зависимость моего приложения черезpackage.json
вот так:
npm i --save awesomepackage
Осматривая мойnode_modules
папка Я вижу папку с именем "awesomepackage", которая выглядит следующим образом:
- index.js
- package.json
- README.md
- lib/
- awesomepackage.min.js
и я могу использовать пакет внутри моего собственного приложения, например, так:
import {AwesomeThing} from 'awesomepackage';
Мой вопрос:Когда я создаю свое приложение, используя webpack, мой финалbundle.js
всегда содержит исходный кодnode_modules/awesomepackage/index.js
- независимо от каких-либо переменных среды, которые я настроил (например,NODE_ENV=production
).
Есть ли способ указать веб-пакету использовать предварительно созданные файлы (например,node_modules/awesomepackage/lib/awesomepackage.min.js
) если они поставляются как часть пакета NPM, а не перестраиваются из источника?
Я видел решениятот использование resolve.alias
а такжеnoParse
в конфигурации webpack с жестко закодированными путями к минимизированным исходным файлам, но разве это не противоречит цели использования npm и webpack? Я не хочу жестко программировать и поддерживать пути к минимизированным файлам сборки каждой зависимости!
Я попал сюда, потому что мойbundle.js
подскочил 2.5mb, когда я добавилmoment.js
- который сокращен до 167 КБ, включая все локали, но исходный код которого включает 2 МБ тестов.
Ясно, что это не просто минимизация финала.bundle.js
файл в конце. Например: почему кто-то хотел бы включить сотни ненужных модульных тестов для зависимостей в окончательный производственный код? Они не Вот почему большинство библиотек предоставляютdist
(или аналогичная) папка как часть их модуля npm.