Ошибка полимера 3 — как настроить параметр Rollup --inlineDynamicImport

Я получаю следующую ошибку после добавления динамического импорта (необходимого для варианта использования) при попытке сборки с использованием полимерных инструментов:

info:   Clearing build/ directory...
error:  Promise rejection: Error: Failed to bundle.  Rollup generated 2 chunks or assets.  Expected 1.
error:  Error: Failed to bundle.  Rollup generated 2 chunks or assets.  Expected 1.
    at Es6Rewriter.<anonymous> (/home/suared/localdev/nodespace/ui/node_modules/polymer-cli/node_modules/polymer-bundler/lib/es6-rewriter.js:138:23)
    at Generator.next (<anonymous>)
    at fulfilled (/home/suared/localdev/nodespace/ui/node_modules/polymer-cli/node_modules/polymer-bundler/lib/es6-rewriter.js:4:58)
    at runMicrotasks (<anonymous>)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

Я нашел потенциальное решение в документации по Rollup и в Интернете, где упоминалось, что эта проблема исправлена ​​при передаче --inlineDynamicImports команде Rollup. Однако я не нашел, чтобы передать это как часть процесса сборки. Я пробовал это:

polymer build --auto-base-path --inlineDynamicImport

Он сообщил об ошибке, что это неизвестная опция. Я также безуспешно пытался поместить это в polymer.json как часть конфигурации пакета; не похоже, что он действительно передается в Rollup:

      "bundle": {
        "inlineCss": true,          
        "inlineScripts": true,      
        "rewriteUrlsInTemplates": true, 
        "sourcemaps": true,     
        "stripComments": true,
        "--inlineDynamicImport": true    
      }

Как правильно передать инструментам сборки Polymer параметр --inlineDynamicImport, чтобы я получил только один файл и, следовательно, избежал ошибки «2 куска»?


person David Suarez    schedule 22.03.2020    source источник


Ответы (1)


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

Локальный патч обезьяны/обновление следующего файла: node_modules/polymer-cli/node_modules/polymer-bundler/lib/es6-rewriter.js:74

В вызове, который читается как первая строка, вручную добавьте конфигурацию, остальную часть конфигурации оставьте как есть:

            const rollupBundle = yield rollup_1.rollup({
                input,
                external,
                onwarn: (warning) => { },
                treeshake: this.bundler.treeshake,
                inlineDynamicImports: true, ....(rest of existing command

Приветствуется любая помощь в правильном использовании инструментов сборки.

Спасибо! Дэйвид

person David Suarez    schedule 23.03.2020