Webpack - как определить, какой проект является целью для сборки в Webpack - PullRequest
0 голосов
/ 26 марта 2020

Я строю новый проект на основе архитектуры Monorepo / NX (nrwl) и микро-интерфейса. Я извлек конфиг webpack для создания angular проектов. может быть несколько angular проектов, и с помощью команды nx nx build [target] я делаю сборки.

Внутри конфигурации webpack я использую функцию возврата в соответствии с множеством пользовательских операций. в функцию передаются два параметра config и options. Вместо того, чтобы отделить пакет. json для каждого проекта в monorepo, есть один общий файл, известный как рабочее пространство. json, и он включает все конфиги. Поэтому, когда я запускаю nx build [target] , он переходит в рабочую область. json, ищет соответствующий проект и запускает компоновщики.

В соответствии с пользовательскими конфигурациями веб-пакетов проблема заключалась в том, что все основные . js сборки имели ключ webpackJsonp в глобальном объекте, и поскольку я загружал несколько микро-приложений в качестве веб-компонентов, они имели один и тот же ключ (webpackJsonp) и переопределяли друг друга. Но я исправил это с помощью этой строки кода

config.output.jsonpFunction = 'webpackJsonp_' + Math.random().toString(36).substring(7);

Но теперь я хочу запустить несколько команд оболочки для объединения пакетов в один пакет и перемещения объединенного пакета в каталог, где находится мой загрузчик живет.

Поскольку все пакеты хранятся в папке dist с разделенными папками автоматически с помощью nx, я хотел бы получить доступ к этим папкам из пользовательской конфигурации веб-пакета, чтобы иметь возможность перемещать их в другое место назначения. все подпапки в dist имеют то же имя, что и проекты. например, если у меня есть заголовок проекта, после сборки есть dist / header / folder и там хранятся сборки.

Я не хочу передавать параметры, подобные этим nx build [name] --additiona params. Я хочу как-то узнать в файле custom.webpack. js во время сборки, какой проект собирает веб-пакет.

...