Итак, я просто пытаюсь просмотреть результаты webpack-bundle-analyzer , ища вещи, которые должны быть на диете, и более подробно разбираюсь в процессе сборки CLI (CLI v6.1.5, Angularv6.1.8) и улучшить наш экземпляр.
Я заметил, что на общем ng build
, когда я иду, я просматриваю комплект поставщиков, который вижу;
var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
* jQuery JavaScript Library v3.2.1
, что прискорбно, поскольку он не минимизирован как весь файл jquery.js со скоростью около 260k +, однако я также нахожу это в комплекте скриптов;
/*! jQuery v3.2.1 | (c)
, который является минимизированным файломверсию, которую я ожидал, учитывая, что я объявил ее явно в моем массиве скриптов в angular.json
Так что я решил, что я переместил его в tsconfig.json
как путь к модулю как;
"paths": {
"jquery": ["./node_modules/jquery/dist/jquery.min.js"],
}
Тогда он должен взять мин версию и лишить другую у продавца, как я это сделал с другими.Что он делает, прекрасно строит, я вижу разницу в размерах, jquery.js пропал из комплекта вендора .... но я помню, что в этом случае на модулях нет опечаток, поэтому при переходе на init я получаю кучу дерьма error TS2304: Cannot find name '$'
ошибок.Который, я действительно не хочу, чтобы объявления import * as $ from 'jquery'
повторялись, если бы я мог избежать этого, а также у меня есть зависимый объект в том же пути к angular.json
некоторой библиотеки jquery-ui, которую я не использовал как;
"scripts": [
"./node_modules/jquery/dist/jquery.min.js",
"./vendor_scripts/jquery-ui/jquery-ui.min.js",
.....
Где, если я просто пропущу путь jquery.min.js, я получу ReferenceError: $ is not defined
повсюду.
Так что что-то в этом унаследованном процессе сборки выходит за рамкиЯ надеюсь, что кто-то может научить меня чему-то.Как я могу избежать дублирования сценариев, чтобы положить пакеты на диету, и как я могу убедиться, что мои наборы / объявления окружения соблюдаются правильно?Ура за чтение в любом случае!