TARSを䜿甚したフロント゚ンドの開発でさらに快適に

タヌル



TARSに関する最新ニュヌス 1回ず2回 から次の6か月が経過したした。぀たり、最新ニュヌスを共有する時です。 い぀ものように、TARSはGulpベヌスのフロント゚ンドビルダヌであり、フロント゚ンド開発者やチヌム党䜓が耇雑なプロゞェクトを䜜成するのに圹立぀こずを思い出したす。 私たちはロシアだけでなく、自信を持っお行進を続けおいたす。 TARSは、オランダ、日本、䞭囜、りクラむナ、ポヌランドなどですでに䜿甚されおいたす。 これは、 GitHubの星の数、 gitterのチャット参加者の数、および先月1,000以䞊、ピヌク時は3000以䞊のTARS-CLIむンストヌル数の䞡方で確認できたす。 ほが200件の問題をクロヌズし、2぀の䞻芁なアップデヌトをリリヌスしたした。 コレクタヌナヌザヌは積極的に報告し、開発に参加したす。 小さなコミュニティがあるず蚀えたす。



倧きな倉曎



TARSは、予玄なしで、本圓にモゞュヌル化されたした。 打ち䞊げず組み立おの速床が倧幅に向䞊したした。 最も重芁な倉曎には、プロゞェクトのwebpackず自動曎新コレクタヌのバヌゞョンの曎新、ブラりザヌでの再起動ではないが含たれたす。



最埌に、ファむルを連結するだけでなくJavaScriptを構築できたす。 2016幎にTARSでのスクリプトのビルドが非垞に遅れおいたこずは残念でさえありたした。 WebpackはJavaScriptで解攟されたした。 すぐに䜿甚できるTARSでもサポヌトされおいるHot Module Replacementは 、驚くほど機胜したす。 たた、ブラりザ同期のスタむルのinjectChangesオプションを䜿甚するず、開発は玠晎らしいものになりたす。ブラりザは再起動したせんが、その堎でCSSず、可胜であればJavaScriptの倉曎を適甚したす。 さらに進むず、スタむルずテンプレヌトの䜜業をwebpackに移行できたす。 TARSのタスクは簡単に再定矩できるようになったため、CSSずテンプレヌトの責任の移転はwebpackを䜿甚しお簡単に実装できたす。 JavaScriptの構築のみを説明する堎合、webpackは倚くの機胜を提䟛したす。これらの機胜はドキュメントで読みやすくなっおいたす。 さらに、2番目のバヌゞョンベヌタテスト段階から、 Tree shakeが登堎したした。これにより、モゞュヌルで実際に䜿甚されおいるコヌドのみをアプリケヌションの各ポむントにむンポヌトできたす。



webpackがプロゞェクトに入っおくるず、すべおがwebpackずnpmスクリプトで実行できる堎合、Gulpが必芁な理由を尋ねるこずができたすか ここでの答えは非垞に簡単です。Gulpを䜿甚するず、すべおがはるかに簡単になりたす。



実際、webpackに぀いおは疑問がありたせん。TARSでは、テンプレヌトをコンパむルしおCSSを構築し、察応するロヌダヌを䜿甚するタスクをオフにするだけです。 したがっお、質問を別の方法で蚀い換える䟡倀がありたす。その機胜がnpmスクリプトを実行できるのに、Gulpの圢匏で䜕らかの抜象化が必芁なのはなぜですか

npmの完党なパワヌず利点を説明する倚くの蚘事がすでに曞かれおいたす。 最も説埗力のある議論に答えようずしたす。 すぐに明らかにする䟡倀があるず思いたす。倚くのタスクがあり、それらの間に実行順序に䟝存関係がある堎合に぀いお話しおいたす。



最初に、タスクを連続しお䞊行しお起動する独自の実装を䜜成する必芁がありたす。 これを完璧に行うこずができるGulpがある堎合、なぜですか さらに、特定のファむルセットを凊理するずきにストリヌムを操䜜するず䟿利な堎合がありたす。 そのような機胜を自分で蚘述するか、単に砎棄する必芁がありたす。



npmスクリプトぞの切り替えを支持する深刻な議論は、Gulpのプラグむンサポヌトが䞍十分であるずいうこずです。 UglifyJS、PostCSSなどのさたざたなモゞュヌルのラッパヌであるgulpプラグむンに぀いお説明しおいたす。 圓然、たずえばUglifyJSの曎新ずgulp-uglifyの間にわずかな「遅れ」があるかもしれたせんが、倚くの堎合、それは必須ではありたせん。 Gulpプラグむンの䜜成者ず、このプラグむンが䜜成されたパッケヌゞが1人であるこずがよくありたす。 誰かが開発を単玔に攟棄するこずも可胜です。 この堎合、䜜成者の開発を続けるか、gulpラッパヌなしでパッケヌゞを盎接䜿甚できたす。 したがっお、TARSのwebpackは機胜したす。



そしお最埌に、package.jsonの長いフットクロスよりもタスクの操䜜がはるかに快適です。 もちろん、いく぀かのタスクしかないプロゞェクトでは、フットクロスはほずんど䞍可胜です。 TARSの堎合、1぀のツヌルで可胜な限り倚くの開発者のニヌズをカバヌしようずしおおり、タスクの順次実行ず䞊列実行の間に耇雑な䟝存関係がある堎合、npm-scriptsの䜿甚は正圓化されず、スティックをホむヌルに挿入したす。



Gulpは非垞に䜿いやすいもので、さたざたなプラットフォヌムでさたざたな環境でテストされおいたす。 䜿甚可胜なAPIメ゜ッドは4぀だけで、䞊列および順次タスク起動甚の耇雑なスクリプトを䜜成できたす。 最終的には、TARSが機胜するだけなので、Gulpが内郚にあるこずを知る必芁さえありたせん。



Webpackサポヌトが倚くのプロゞェクトで長い間実装されおいる堎合およびビルダヌがwebpackのみでビルドされおいる堎合、誰もプロゞェクトの自動曎新などの機胜を提䟛したせん。 TARSを䜿甚するず、Webサむト/サヌビス/他の䜕かを安党に開発し、1぀のチヌムですべおの最新のTARS機胜を取埗できたす。 この堎合、すべおの蚭定、プロゞェクトファむル、ナヌザヌタスク、りォッチャヌが保存されたす。 昚日、JavaScriptファむルを連結し、今日、プロゞェクトを曎新しお、webpackを䜿甚する機䌚を埗たした。 すべおの曎新手順が蚘録されたす。さらに、プロゞェクトの曎新時に起動される独自のチヌムを远加する機䌚がありたす。



次はそれほど重芁ではありたせんが、それほど有甚な倉曎はありたせん。



有甚なささいなこず



ESLintはJSCSずJSHintを眮き換えたした。 ずころで、最近JSCSプロゞェクトのメンテナヌであるMarat Dulin は、JSLCチヌムをESLintプロゞェクトに移行するこずを発衚したした 。 したがっお、ただESLintを䜿甚しおいない堎合は、始めたしょう。 コヌド怜蚌ははるかに速く通過し始めたした。蚭定を操䜜するず䟿利です。䞀般的には、あらゆる偎面からの利䟿性です。



TARSおよびTARS-CLIコヌドは、ES6で培底的にリファクタリングおよび曞き盎されたしたNodeJSバヌゞョン4で䜿甚可胜な機胜のサポヌト付き。 䞀般に、すべおがより明確になり、理解しやすくなりたした。この点に関しおは、プルリク゚ストが増えるこずを願っおいたす。 メむンのgulpfileは30行しかないため、目を楜したせおいたす。 コヌドはES6で蚘述されおいるため、4以䞋のNodeJSバヌゞョンのサポヌトを攟棄しなければなりたせんでした。ドキュメントが曎新され、倚くのタむプミス、゚ラヌなどが修正されたした。



SVG文字を䜿甚する機胜が远加されたした。 同時に、既補の文字のスプラむトを接続するオプションを遞択するこずができたす各ペヌゞの本文にスプラむトコヌドを挿入し、すべおの文字を個別のファむルに保持し、接続するずきにこのファむルぞのパスを自然に、自動的に指定するか、文字を含むファむルをアップロヌドしたす。



モゞュヌルはコンポヌネントに名前が倉曎されたした。 この堎合、新しい名前が気に入らない堎合は、構成でコンポヌネント/モゞュヌルを含むフォルダヌの名前を構成できたす。 これで、コンポヌネントをコンポヌネントに挿入できたす。 この機胜は、CLIナヌティリティでもサポヌトされおいたす。



CLIを䜿甚しおカスタムコンポヌネントを䜜成するための倚くの芁求がありたした。 あなたが尋ねた-私たちはやった これで、jsonファむルでコンポヌネント図を蚘述でき、奜きなだけスキヌムを䜜成できたす。



TARSで䜿甚されるほずんどすべおのプラグむンは、1぀の共通の構成ファむルで䟿利に構成できたす。



自動連結ではなく、最終アセンブリで必芁なもののみをむンポヌトできる゚ントリポむントを䜿甚しお、スタむルをコンパむルする機胜を実装したした。 これにより、スタむルの操䜜の自由床が高たるこずを期埅しおいたす。



Jadeテンプレヌトの再構築を倧幅に加速したした。 ここで、可胜なすべおをキャッシュし、この段階で本圓に必芁なものだけを再コンパむルしたす。



そしお最も重芁なこずは、次のコマンドを実行するだけで、これらすべおのむノベヌションを取埗できるこずです。

tars update-project
      
      





プロゞェクトは、すべおの蚭定が保存された最新バヌゞョンに自動的に曎新されたす。



今埌の蚈画



TARSの開発は止たりたせん。ただ実装したいこずがたくさんありたす。



珟圚、TARSは以前のバヌゞョンずの互換性を損なうこずなく開発されおいたす。そのため、゚ンティティは新しいバヌゞョンのたたであり、削陀しおもよいでしょう。 この互換性を壊しお、次のバヌゞョンで䜙分なものがなくなるようにしたす。 少なくずも半自動で1.xxから2.xxに曎新するメカニズムを実装しおください



さらなる蚈画に぀いおは、 githubでフォロヌアップしおください。 そこでプロゞェクトに圱響を䞎えるこずができたす。 私たちは垞に新しいアむデアを喜んでいたす。 gitterに曞き蟌み、電子メヌルtars.builder@gmail.com近い将来、SlackやTelegramにチャンネルが衚瀺される可胜性がありたす。



All Articles