Полимерная сборка с пользовательскими плагинами babel? - PullRequest
0 голосов
/ 14 декабря 2018

Мы хотели бы иметь возможность добавлять пользовательские функции в polymer build и polymer serve, настраивая пользовательские плагины babel.

Например, так как Polymer-Cli использует Babel внутри, мы добавили бы *Файл 1005 * в нашу рабочую область / корневой каталог проекта, например:

module.exports = function (api) {

  api.cache(true);


  const presets = [ ];
  const plugins = [
 "@babel/plugin-proposal-optional-chaining"
 ];


  return {
    presets,
    plugins
  };
}

... и затем мы могли бы обслуживать или создавать наш проект с поддержкой необязательных цепочек и т. Д. Это позволило бы нам делать все видывещей, написав дополнительные плагины Babel для обработки таких вещей, как минимизация внутри строк HTML-шаблона ...

К сожалению, в настоящее время это не работает.polymer-build, кажется, загружает конфигурацию (из-за использования babel / core?), Но polymer-analyze нет.Ошибка генерируется на этапе оптимизации компоновки, выполняемом полимер-анализом, как только он встречает необязательный синтаксис цепочки в нашем источнике:

error:  Error: Unable to get document file:///.../somefile.js: This experimental syntax requires enabling the parser plugin:  
'optionalChaining' (423:6)  
    at BuildAnalyzer.<anonymous> (/usr/local/share/.config/yarn/global/node_modules/polymer-build/lib/analyzer.js:342:23)
    at Generator.next (<anonymous>)  
    at fulfilled  (/usr/local/share/.config/yarn/global/node_modules/polymer-build/lib/analyzer.js:17:58)
    at process._tickCallback (internal/process/next_tick.js:68:7)

polymer serve также генерирует ошибку:

Error { SyntaxError: This experimental syntax requires enabling the parser plugin: 'optionalChaining' (423:6)
    at Parser.raise (/usr/local/share/.config/yarn/global/node_modules/babylon/lib/index.js:776:15)  
    at Parser.expectPlugin (/usr/local/share/.config/yarn/global/node_modules/babylon/lib/index.js:2084:18)  
...   
pos: 13056,   loc: Position { line: 423, column: 6 },  
missingPlugin: [ 'optionalChaining' ] }

В обоих случаях я подтвердил, что babel.config.js файл загружается .Но babel входит в несколько различных пакетов, используемых в Polymer-Cli, поэтому я подозреваю, что в некоторых из них babel используется без (конфигурационной информации babel / core).

Может ли кто-нибудь участвовать вполимерный проект подтвердите, правильно ли я в определении основной проблемы?Я изучаю возможность внесения исправления / улучшения, если область не слишком велика.

Спасибо.

1 Ответ

0 голосов
/ 14 декабря 2018

Я думаю, для этого вам нужно написать свою собственную сборку.Polymer-cli предоставит свой инструмент и для этого.Посмотрите на этот пример: https://github.com/PolymerElements/generator-polymer-init-custom-build

...