Polymer: Как собрать 2.0?

Созданный на 25 апр. 2017  ·  4Комментарии  ·  Источник: Polymer/polymer

Описание

Создание основной ветки кажется невозможным.

Действия по воспроизведению

git clone https://github.com/Polymer/polymer.git
cd polymer
npm install
bower install
npm run build

Ожидаемые результаты

Нет ошибок

Фактические результаты

> @polymer/[email protected] build /media/Data/polymer
> gulp

[13:58:14] Using gulpfile /media/Data/polymer/gulpfile.js
[13:58:14] Starting 'build-bundled'...
[13:58:14] Starting 'build-steps'...
[13:58:14] 'build-steps' errored after 129 μs
[13:58:14] Error: Task print-size is not configured as a task on gulp.  If this is a submodule, you may need to use require('run-sequence').use(gulp).
    at /media/Data/polymer/node_modules/run-sequence/index.js:20:10
    at Array.forEach (native)
    at verifyTaskSets (/media/Data/polymer/node_modules/run-sequence/index.js:13:11)
    at runSequence (/media/Data/polymer/node_modules/run-sequence/index.js:92:2)
    at Gulp.<anonymous> (/media/Data/polymer/gulpfile.js:262:3)
    at module.exports (/media/Data/polymer/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/media/Data/polymer/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/media/Data/polymer/node_modules/orchestrator/index.js:214:10)
    at Gulp.Orchestrator.start (/media/Data/polymer/node_modules/orchestrator/index.js:134:8)
    at runNextSet (/media/Data/polymer/node_modules/run-sequence/index.js:86:16)
[13:58:14] 'build-bundled' errored after 2.13 ms
[13:58:14] Error in plugin 'run-sequence(build-steps)'
Message:
    Task print-size is not configured as a task on gulp.  If this is a submodule, you may need to use require('run-sequence').use(gulp).
Stack:
Error: Task print-size is not configured as a task on gulp.  If this is a submodule, you may need to use require('run-sequence').use(gulp).
    at /media/Data/polymer/node_modules/run-sequence/index.js:20:10
    at Array.forEach (native)
    at verifyTaskSets (/media/Data/polymer/node_modules/run-sequence/index.js:13:11)
    at runSequence (/media/Data/polymer/node_modules/run-sequence/index.js:92:2)
    at Gulp.<anonymous> (/media/Data/polymer/gulpfile.js:262:3)
    at module.exports (/media/Data/polymer/node_modules/orchestrator/lib/runTask.js:34:7)
    at Gulp.Orchestrator._runTask (/media/Data/polymer/node_modules/orchestrator/index.js:273:3)
    at Gulp.Orchestrator._runStep (/media/Data/polymer/node_modules/orchestrator/index.js:214:10)
    at Gulp.Orchestrator.start (/media/Data/polymer/node_modules/orchestrator/index.js:134:8)
    at runNextSet (/media/Data/polymer/node_modules/run-sequence/index.js:86:16)

npm ERR! Linux 4.10.0-20-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "build"
npm ERR! node v7.9.0
npm ERR! npm  v4.2.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @polymer/[email protected] build: `gulp`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @polymer/[email protected] build script 'gulp'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the @polymer/polymer package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     gulp
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs @polymer/polymer
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls @polymer/polymer
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/nazar-pc/.npm/_logs/2017-04-25T10_58_14_261Z-debug.log

Версии

nodejs --version
v7.9.0
npm --version
4.2.0
bower --version
1.8.0
gulp --version                                                  
[14:15:43] CLI version 3.9.1
[14:15:43] Local version 3.9.1

Самый полезный комментарий

Спасибо за вопрос. Решили, что нам нужно очистить gulpfile. Задачи gulp были в основном для выборочной проверки размера минифицированного полимера, а также для тестирования сборки / линтинга компилятора закрытия, но они пришли в состояние негодности, поскольку мы фактически не используем их на регулярной основе.


Возможно, больше, чем вы просили, но вот предыстория наших планов выпуска / распространения:

План для первоначального выпуска Polymer 2.0 на самом деле состоит в том, чтобы распространить базовую библиотеку как необработанный исходный код ES6 (разделенный / нетранспилированный / неминифицированный, поэтому gulpfile на самом деле не входит в рабочий процесс выпуска) и позволить пользователям выполнять эти задачи на этапе развертывания. как того требуют условия, например, с использованием Polymer CLI.

Такой подход объясняется несколькими причинами:

  • Мы хотим, чтобы составляющие биты Polymer 2.0 (который построен из составных миксинов) были потребляемыми alacarte без затрат полезной нагрузки всей связанной библиотеки (например, использование только lib/mixins/property-accessors.html или template-stamp.html alacarte дает у вас много мощности всего за несколько кб)
  • Для собственных настраиваемых элементов требуются собственные классы ES6, поэтому сохранение исходного кода в виде нетранспилированного ES6 и передача исходного кода с переносом ES5 только тем браузерам, которые в нем нуждаются, дают преимущества в производительности (требуется более сложная настройка сервера, но мы хотим разрешить это, хотя мы также есть встроенная прокладка, позволяющая использовать исходный код ES5 с немого сервера и по-прежнему работать на собственном CE со скромным снижением производительности)
  • Это больше соответствует тому, как доставляются элементы

Мы также очень заинтересованы в том, чтобы подключиться к «экосистеме модулей», поэтому мы вполне можем в конечном итоге выпустить Polymer в более традиционном формате (и адаптировать файл gulpfile для вывода сборки, подходящего для этого), но еще не совсем приземлились. об окончательной форме этого пока нет. А пока, как вы отметили, нам нужно исправить gulpfile, чтобы он не взорвался.

Все 4 Комментарий

Спасибо за вопрос. Решили, что нам нужно очистить gulpfile. Задачи gulp были в основном для выборочной проверки размера минифицированного полимера, а также для тестирования сборки / линтинга компилятора закрытия, но они пришли в состояние негодности, поскольку мы фактически не используем их на регулярной основе.


Возможно, больше, чем вы просили, но вот предыстория наших планов выпуска / распространения:

План для первоначального выпуска Polymer 2.0 на самом деле состоит в том, чтобы распространить базовую библиотеку как необработанный исходный код ES6 (разделенный / нетранспилированный / неминифицированный, поэтому gulpfile на самом деле не входит в рабочий процесс выпуска) и позволить пользователям выполнять эти задачи на этапе развертывания. как того требуют условия, например, с использованием Polymer CLI.

Такой подход объясняется несколькими причинами:

  • Мы хотим, чтобы составляющие биты Polymer 2.0 (который построен из составных миксинов) были потребляемыми alacarte без затрат полезной нагрузки всей связанной библиотеки (например, использование только lib/mixins/property-accessors.html или template-stamp.html alacarte дает у вас много мощности всего за несколько кб)
  • Для собственных настраиваемых элементов требуются собственные классы ES6, поэтому сохранение исходного кода в виде нетранспилированного ES6 и передача исходного кода с переносом ES5 только тем браузерам, которые в нем нуждаются, дают преимущества в производительности (требуется более сложная настройка сервера, но мы хотим разрешить это, хотя мы также есть встроенная прокладка, позволяющая использовать исходный код ES5 с немого сервера и по-прежнему работать на собственном CE со скромным снижением производительности)
  • Это больше соответствует тому, как доставляются элементы

Мы также очень заинтересованы в том, чтобы подключиться к «экосистеме модулей», поэтому мы вполне можем в конечном итоге выпустить Polymer в более традиционном формате (и адаптировать файл gulpfile для вывода сборки, подходящего для этого), но еще не совсем приземлились. об окончательной форме этого пока нет. А пока, как вы отметили, нам нужно исправить gulpfile, чтобы он не взорвался.

Большое спасибо за эти детали, имеет смысл!

В качестве примечания: будут ли все следующие: Chromium, Firefox, Edge и Safari поддерживать все функции ES2015, необходимые для Polymer в двух последних выпусках на сегодняшний день (я бы хотел полностью исключить процесс транспилирования)?

@ nazar-pc Верно, для последней версии всех 4 основных браузеров транспиляция не требуется. Если вы решите использовать CLI, polymer serve UA обнюхивает и будет транслировать на лету для тестирования в IE (и более старых версиях других браузеров), чтобы сделать это еще проще.

polymer build поддерживает универсальную сборку ES5, а также отдельные сборки ES5 и ES6 для развертывания.

Одно замечание, что у Edge 14 есть некоторые ошибки в их имплементации ES6 (особенно плохой, когда создание класса ES6 слишком много раз срывается), поэтому мы рекомендуем транспилировать Edge и делать это по умолчанию в инструментах CLI (хотя я считаю, что Edge 15 решил это).

Закрытие, так как gulpfile был очищен в https://github.com/Polymer/polymer/pull/4565.

Реализованы следующие задачи gulp (и удалена задача default ):

  • clean - удаляет dist dir
  • estimate-size - оценивает размер минифицированного пакета polymer.html
  • lint - запускает eslint
  • lint-closure - запускает компилятор закрытия и выводит файл журнала с предупреждениями о закрытии (тип закрытия всей библиотеки - WIP)
  • closure - запускает режим "расширенной компиляции" закрывающего компилятора и выводит сборку polymer.html (не особенно полезно для конечных пользователей из-за устранения мертвого кода, но полезно для тестирования компилируемости)
Была ли эта страница полезной?
0 / 5 - 0 рейтинги