Polymer: 2.0を構築する方法は?

作成日 2017年04月25日  ·  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
2.x p1

最も参考になるコメント

問題をありがとう。 gulpfileをクリーンアップする必要があることに同意しました。 そこにあったgulpタスクは、主に縮小されたポリマーのサイズのスポットチェックとクロージャーコンパイラのビルド/リンティングのテストでしたが、実際には定期的に使用していないため、破損した状態になりました。


おそらくあなたが求めていた以上のものですが、リリース/配布計画の背景は次のとおりです。

最初のPolymer2.0リリースの計画は、実際にはコアライブラリを生のES6ソースとして配布し(バンドルされていない/トランスパイルされていない/縮小されていないため、gulpfileは実際にはリリースワークフローに含まれていません)、ユーザーが展開ステップでこれらのタスクを実行できるようにすることです。条件に応じて、たとえば、PolymerCLIを使用します。

このアプローチにはいくつかの異なる理由があります。

  • Polymer 2.0(構成可能なミックスインから構築されている)の構成ビットは、バンドルされたライブラリ全体のペイロードコストなしで消費可能なアラカルトである必要があります(たとえば、 lib/mixins/property-accessors.htmlまたはtemplate-stamp.htmlアラカルトのみを使用するとほんの数kbでたくさんのパワーがあります)
  • ネイティブカスタム要素にはネイティブES6クラスが必要なため、ソースを非トランスパイルES6として保持し、ES5トランスパイルソースをそれを必要とするブラウザーにのみ提供することにはパフォーマンス上の利点があります(より複雑なサーバーセットアップが必要ですが、それを許可したいのですが、また、ES5ソースをダムサーバーから提供し、パフォーマンスにわずかな影響を与えながらネイティブCEで実行できるようにする、ネイティブシムもあります)
  • 要素の配信方法とより一貫性があります

また、「モジュールエコシステム」にプラグインすることにも非常に興味があるため、Polymerをより従来の形式で出荷することになる可能性があります(そして、それに適したビルド出力にgulpfileを適合させる)が、まだ十分に着手していません。まだその最終的な形に。 それまでの間、ご指摘のとおり、爆発しないようにgulpfileを修正する必要があります。

全てのコメント4件

問題をありがとう。 gulpfileをクリーンアップする必要があることに同意しました。 そこにあったgulpタスクは、主に縮小されたポリマーのサイズのスポットチェックとクロージャーコンパイラのビルド/リンティングのテストでしたが、実際には定期的に使用していないため、破損した状態になりました。


おそらくあなたが求めていた以上のものですが、リリース/配布計画の背景は次のとおりです。

最初のPolymer2.0リリースの計画は、実際にはコアライブラリを生のES6ソースとして配布し(バンドルされていない/トランスパイルされていない/縮小されていないため、gulpfileは実際にはリリースワークフローに含まれていません)、ユーザーが展開ステップでこれらのタスクを実行できるようにすることです。条件に応じて、たとえば、PolymerCLIを使用します。

このアプローチにはいくつかの異なる理由があります。

  • Polymer 2.0(構成可能なミックスインから構築されている)の構成ビットは、バンドルされたライブラリ全体のペイロードコストなしで消費可能なアラカルトである必要があります(たとえば、 lib/mixins/property-accessors.htmlまたはtemplate-stamp.htmlアラカルトのみを使用するとほんの数kbでたくさんのパワーがあります)
  • ネイティブカスタム要素にはネイティブES6クラスが必要なため、ソースを非トランスパイルES6として保持し、ES5トランスパイルソースをそれを必要とするブラウザーにのみ提供することにはパフォーマンス上の利点があります(より複雑なサーバーセットアップが必要ですが、それを許可したいのですが、また、ES5ソースをダムサーバーから提供し、パフォーマンスにわずかな影響を与えながらネイティブCEで実行できるようにする、ネイティブシムもあります)
  • 要素の配信方法とより一貫性があります

また、「モジュールエコシステム」にプラグインすることにも非常に興味があるため、Polymerをより従来の形式で出荷することになる可能性があります(そして、それに適したビルド出力にgulpfileを適合させる)が、まだ十分に着手していません。まだその最終的な形に。 それまでの間、ご指摘のとおり、爆発しないようにgulpfileを修正する必要があります。

それらの詳細に感謝します、理にかなっています!

補足として、Chromium、Firefox、Edge、Safariは、今日の2つの最新リリースでPolymerに必要なすべてのES2015機能をサポートしますか(トランスパイルプロセスを完全に排除したい)?

@ nazar-pc正解です。4つの主要なブラウザすべての最新リリースでは、変換は必要ありません。 CLI polymer serve UAスニフを使用することを選択し、IE(および他のブラウザーの古いバージョン)でテストするためにオンザフライでトランスパイルして、さらに簡単にする場合。

polymer buildは、ユニバーサルES5ビルドの実行と、展開用の個別のES5ビルドとES6ビルドの実行をサポートしています。

Edge14にはES6implにいくつかのバグがあることに注意してください(ES6クラスの構築が何度も爆発するという特に悪いバグ)。したがって、Edgeをトランスパイルし、デフォルトでCLIツールでトランスパイルすることをお勧めします(ただし、Edge 15は信じています)これを解決しました)。

gulpfileがhttps://github.com/Polymer/polymer/pull/4565でクリーンアップされたため、終了し

次のgulpタスクが実装されています(そしてdefaultタスクが削除されています):

  • clean -distdirを削除します
  • estimate-size -縮小されたpolymer.htmlバンドルのサイズを推定します
  • lint -eslintを実行します
  • lint-closure -クロージャコンパイラを実行し、クロージャ警告付きのログファイルを出力します(ライブラリ全体のクロージャタイピングはWIPです)
  • closure -クロージャコンパイラの「高度なコンパイル」モードを実行し、 polymer.htmlビルドを出力します(デッドコードが排除されているため、エンドユーザーには特に役立ちませんが、コンパイル可能性のテストには役立ちます)
このページは役に立ちましたか?
0 / 5 - 0 評価