У меня есть проект машинописного текста, который создает пакет umd с помощью веб-пакета, это проект библиотеки. Конфигурация веб-пакета имеет среди прочего (соответствующие части):
webpack.config.js (основная библиотека проекта)
output: {
filename: mode === "production" ? "[name].min.js" : "[name].js",
path: path.resolve(__dirname, "dist"),
libraryTarget: "umd",
library: "core-library"
},
externals: {
"typescript-logging": "typescript-logging"
}
В библиотеке используется регистрация текстовых сообщений, которая устанавливается как внешняя, поэтому проект потребителя должен предоставить ее. Все это строится и отлично связывается, а регистрация машинописного текста действительно является внешней при проверке связки.
Потребительский проект использует этот проект и обеспечивает ведение журнала сценариев в зависимостях package.json. В этом проекте есть шутник.
Что я ожидал бы, так это то, что это состояние является общим для ведения журналов ввода текста (средства ведения журнала / категории, используемые в core-library и проекте-потребителе). Однако я могу создать одну и ту же категорию (регистратор с одинаковым именем) дважды как в основной библиотеке, так и в проекте-потребителе (это не будет разрешено, если между ними будет разделено состояние).
Я бы ожидал, что из-за части "externals" в веб-пакете, что запись в журнал машинописного текста будет существовать только один раз, но, похоже, он будет загружен дважды (один раз внутри библиотеки и один раз внутри потребительского проекта).
Обратите внимание, что тест выполняется с помощью jest (npx jest).
Это ожидаемое поведение (или, возможно, нет)?
Может кто-нибудь объяснить, как можно добиться того, чего я хочу, чтобы в этом случае было только одно состояние для кода регистрации машинописного текста.
Спасибо.