Webpack - Как повторно использовать глобальное имя библиотеки, когда оно уже существует? - PullRequest
0 голосов
/ 07 марта 2019

Добрый вечер!

У меня есть этот monorepo с несколькими пакетами, каждый из которых упакован независимо с помощью Webpack.

До того, как это было monorepo, у меня был бы один файл комплекта, и было бы возможно сделать его доступным через глобальную переменную в браузере через свойство output.library. Теперь у меня есть следующее, так как у меня есть несколько записей:

output: {
    library: "SC",
    // export itself to UMD format
    libraryTarget: "umd",
    umdNamedDefine: true,
    filename: "[name]/dist/organization-[name].js",
    // fix for https://github.com/webpack/webpack/issues/6525
    globalObject: `(typeof self !== 'undefined' ? self : this)`
  }

Проблема в том, что если я использую одну и ту же конфигурацию для каждого пакета и импортирую более одного в браузер с использованием тегов script , на самом деле будет доступен только последний скрипт потому что по сути каждый раз воссоздает глобальную переменную.

Есть ли способ использовать его повторно? Или, может быть, лучшее соглашение, которое я мог бы использовать здесь. Например, в узле я импортирую каждый из них, используя имя пакета, но в браузере мне кажется, что все должно быть в одной глобальной переменной.

Спасибо за любые предложения!

1 Ответ

0 голосов
/ 15 марта 2019

Как уже упоминалось в проблеме, которую я создал через репозиторий веб-пакета, решение состоит в том, чтобы использовать следующее: library: ["MyLibrary", "[name]"]

Это сделает все пакеты доступными в рамках одной глобальной переменной * 1006.* но разделены соответствующей записью (т. е. MyLibrary.entryOne и MyLibrary.entryTwo).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...