3.7.3.4. Структура проекта и система сборки

В системе сборки Polymer-клиента используются следующие инструменты:

По умолчанию, установкой и запуском этих инструментов занимается Gradle, однако можно использовать их и напрямую, см. Использование нативных инструментов Polymer.

Polymer 2.0 и нативные компоненты написаны с использованием синтаксиса ES6, поэтому для поддержки старых браузеров требуется дополнительная компиляция ES6 → ES5 при сборке.

По умолчанию в Polymer клиенте используется пресет сбоки es6-unbundled, который не подразумевает компиляцию в ES5. Поэтому для поддержки старых проектов и развёртывания на живые сервера необходимо изменить его на es5-bundled.

Для изменения пресета отредактируйте свойство builds в файле polymer.json:

  "builds": [
    {
      "preset": "es5-bundled",
      "basePath": "/app-front/",
      "addServiceWorker": false
    }
  ]

Более подробную информацию о пресетах и опциях сборки вы можете найти на сайте Polymer.

В polymer.json можно указать несколько вариантов сборки, для разворачивания конкретного варианта в Tomcat необходимо изменить задачу deploy в build.gradle:

    task deploy(type: Copy, dependsOn: [assemble, deployUnbundled]) {
        from file('build/es5-unbundled')
        into "$cuba.tomcat.dir/webapps/$frontAppDir"
    }

Обратите внимание на изменение es6-bundledes5-unbundled в polymer.json и build.gradle.