Skip to content
This repository was archived by the owner on Apr 11, 2026. It is now read-only.
This repository was archived by the owner on Apr 11, 2026. It is now read-only.

Добавить обработку globals из bundle.config #58

@svn72

Description

@svn72

При работе с дополнительными плагинами невозможно уточнить как обрабатывать импорты для них, хотя непосредственно rollup это позволяет

Например такое поведение может пригодиться при работе с vue sfc с использованием @vue/compiler-sfc для vue3. В итоговой рендер-функции появляется переменная vue которую бандлер не может корректно обработать, т.к. все импорты резолвятся либо как BX либо из других экстеншенов.
image
В данном случае это можно решить "пробросом" алиаса vue:BX.Vue3 в итоговый конфиг для rollup.

Пример собранный на коленке:

// файл - bitrix.build.js

function getGlobals(imports, {
  context,
  globals
}) {
  return imports.reduce((accumulator, extensionName) => {
    //...
    let moduleAlias = 'BX';
    if (fs.existsSync(configPath)) {
        //...
    } else if (globals.hasOwnProperty(moduleName)) {
      moduleAlias = globals[moduleName]
    }
    accumulator[extensionName] = moduleAlias;
    return accumulator;
  }, {});
}


function getConfigs(directory) {
  //...
  return glob.sync(pattern, options).reduce((acc, file) => {
    //...
    configs.forEach(currentConfig => {
      //...
      acc.push({
        input: path.resolve(context, currentConfig.input),
        output,
        globals: currentConfig.globals || {},
       //...
    });
    return acc;
  }, []);
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions