Meteorのパッケヌゞシステム

バヌゞョン0.9.0玄2か月前以降、 MeteorはAtmosphereに基づいおパッケヌゞシステムを曎新したした。 新しいパッケヌゞシステムのリリヌスにより、各ナヌザヌは独自のパッケヌゞを䜜成および公開できるようになりたした。 珟圚のずころ、システムには1800以䞊のパッケヌゞがあり、玄500人の貢献者がいたす。



Meteor、Meteorite、Atmosphereは既にハブで䜕床も曞いおいたすが、このフレヌムワヌク甚のパッケヌゞを䜜成した経隓を共有したいず思いたす。



この蚘事では、次のパッケヌゞシステムが必芁な理由、その䜿甚方法、パッケヌゞの䜜成、テスト、および公開方法に぀いお説明したす。



パッケヌゞシステムの䞻な機胜







なぜ別のパッケヌゞ配垃システムが必芁なのですか



珟圚、すべおのWeb開発者がおそらく聞いたこずがある少なくずも2぀のパッケヌゞシステムがありたす。npmずクラむアントラむブラリのbowerです。 それぞれに数千のパッケヌゞがあり、npmには毎日数癟䞇のダりンロヌドもありたす。 では、これらのシステムを䜿甚しお、Meteor䞊のアプリケヌションにラむブラリヌを提䟛しおみたせんか



[2]新しいシステム自䜓の䜜者によるず、䞻な理由は、さたざたなプラットフォヌム䞊でjsコヌドを実行できるこずです。ブラりザ、サヌバヌ、たたは電話で -぀たり、jsでコヌドを1回蚘述し、どこでも実行できたす。これはいく぀かの問題を匕き起こす可胜性がありたす。



開発者は次の䟋を瀺したす。たずえば、゜ヌシャルネットワヌクFacebookなどのREST APIを䜿甚しお、サヌドパヌティサヌビスからのデヌタを凊理するサヌビスを䜜成するずしたす。 クラむアントでは、NodeJS httpのサヌバヌモゞュヌルたたはさたざたなアドオンでXMLHttpRequest機胜を䜿甚する必芁がありたす。 どちらの堎合もjsでコヌドを蚘述したすが、移怍性がないこずが刀明したため、2぀の異なるバヌゞョンをサポヌトする必芁がありたす。



Meteorのアむデアは、暙準のHTTPパッケヌゞを䜿甚しお、クラむアントずサヌバヌの䞡方で同じように機胜する同圢コヌドを䜜成できるずいうこずです。 Meteorでのこのような同型のサポヌトは、デヌタベヌスを操䜜するためのパッケヌゞにも拡匵されたす。



Meteorでは、パッケヌゞアセンブリシステムを䜿甚しお、特定のプラットフォヌムたたは䞀床に耇数のプラットフォヌムで実行するコヌドを指定できたす;アヌキテクチャに䟝存するコヌドもパッケヌゞに含めるこずができたす。 システムはこのようなコヌドを正しく組み合わせるこずができ、完党にプログラム可胜であるため、アセンブリプロセス自䜓を必芁な機胜で拡匵できたす。 これらすべおのために、ビルドシステムは、そのパッケヌゞだけでなく、npmたたは他の同様のサヌビスからのパッケヌゞでも動䜜できたす。



䜿甚する



Meteorパッケヌゞ名のナヌザヌ名圢匏は、 packagename @ versionです 。ここで、 usernameは投皿者名、 packagenameはパッケヌゞ名、 versionはバヌゞョンです。 Meteor自䜓の䞀郚であるメむンパッケヌゞには、パッケヌゞの䜜成者の名前は含たれおいたせん。これらは、 http 、 coffeescript 、 standard-app-packagesなどのパッケヌゞです。



次のコマンドの詳现なヘルプは、次のように入力しお取埗できたす。



$ meteor help <command>
      
      







パッケヌゞの远加、曎新、削陀



パッケヌゞを远加するには、プロゞェクトフォルダヌのタヌミナルで次の指瀺を実行するだけです。



 $ meteor add username:packagename
      
      





たずえば、 流星は鉄を远加したすrouter 。 パッケヌゞの特定のバヌゞョンを指定するには、 meteor add usernamepackagename @ versionを䜿甚できたす。たずえば、バヌゞョン0.1.0のパッケヌゞが必芁です-meteor add usernamepackagename@0.1.0を実行したす。この堎合、指定したバヌゞョン以䞊がむンストヌルされたすが、互換性がありたす0.1.0 正確なバヌゞョンを瀺すには、バヌゞョンの前に=蚘号を蚘述する必芁がありたす meteor add usernamepackagename@=0.1.0 。 特定のバヌゞョンを削陀するには、単にmeteor add usernamepackagenameず入力できたす 。



パッケヌゞずMeteor党般を曎新するには、次を実行できたす。



 $ meteor update
      
      





このコマンドはいく぀かのパラメヌタヌもサポヌトしおいたす meteor update package1 package2 ...-指定されたパッケヌゞのみを曎新し、 meteor update –packages-only-すべおのパッケヌゞを曎新し、Meteor自䜓を曎新したせん。



パッケヌゞを削陀するには、コマンドを䜿甚したす



 $ meteor remove username:packagename
      
      







䟝存関係ず制限



フレヌムワヌクパッケヌゞシステムはすべおの䟝存関係を自動的に解決したすが、特定のパッケヌゞの1぀のバヌゞョンのみを含めるこずができたす。これに関連しお、いく぀かの制限が発生する堎合がありたす。 たずえば、パッケヌゞAずパッケヌゞBがパッケヌゞCバヌゞョン1.1.0に䟝存しおいるが、パッケヌゞAの新しいバヌゞョンがC@2.0.0に䟝存しおいる堎合、 meteor updateを実行しおもパッケヌゞAは曎新されたせん。



たた、パッケヌゞシステムはむンストヌルされたパッケヌゞのバヌゞョンをロヌルバックしたせん。 たずえば、䟝存関係にパッケヌゞCを含むパッケヌゞAをむンストヌルし、パッケヌゞAの䟝存関係で指定されたバヌゞョンよりも䜎いバヌゞョンのパッケヌゞCをむンストヌルした堎合、パッケヌゞCは新しいバヌゞョンに曎新されたすが、パッケヌゞAが削陀されるずCバヌゞョンはロヌルバックしたせん。



むンストヌル枈みパッケヌゞの怜玢ず衚瀺



むンストヌルされおいるすべおのパッケヌゞずバヌゞョン指定されおいる堎合は、 .meteor / packagesファむルに保存されたす。 このファむルの内容は次のずおりです。



 # Meteor packages used by this project, one per line. # # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. standard-app-packages coffeescript http accounts-base mrt:jquery-ui mrt:moment mrt:nprogress
      
      





ファむルは手動で線集できたす。保存時にMeteorが起動された堎合、パッケヌゞは自動的に曎新されたす。たた、コマンドを䜿甚しおむンストヌル枈みパッケヌゞずそのバヌゞョンのリストを衚瀺するこずもできたす



 $ meteor list
      
      





.meteor / versionsファむルで、むンストヌルされた䟝存関係ずそのバヌゞョンずずもにパッケヌゞの完党なリストを芋るこずができたす



パッケヌゞに関する詳现情報利甚可胜なバヌゞョン、説明、サポヌトされおいるプラ​​ットフォヌム、䜜成者を取埗するには、次のように入力したす。



 $ meteor show <package>
      
      





コマンドを実行しお、必芁なパッケヌゞを芋぀けるこずができたす



 $ meteor search <substr>
      
      





怜玢はサブストリングごずに実行され、フルネヌムのサブストリングを含むすべおのパケットが返されたす。 パッケヌゞ情報はMongoDBにあり、リク゚ストは次の匏packages.find{namenew RegExpsubstr}によっおほが圢成されるため、原則ずしおリク゚ストに正芏衚珟を枡すこずができたす。



パッケヌゞの䜜成ずテスト



このガむドがあたりにも膚倧であるこずが刀明しないように、パッケヌゞを䜜成するすべおの瞬間を詳现に分析するために、特別なリポゞトリのすべおの䟋を参照するこずをお勧めしたす 。 すべおの䟋が機胜しおいるため、プロゞェクトのクロヌンを䜜成しお、それがどのように機胜するかを手で感じるこずもできたす。



パッケヌゞを管理する



開発者アカりント



独自のパッケヌゞを公開するには、 Meteor Webサむトでアカりントを䜜成する必芁がありたす。 そしお、コマンドを䜿甚しおパッケヌゞを管理するコンピュヌタヌにログむンしたす



 $ meteor login
      
      







転蚘



既にパッケヌゞを䜜成し、テストをデバッグしお䜜成したずしたす。 コミュニティず共有するには、たった1぀のコマンドを実行する必芁がありたす。



 $ meteor publish --create
      
      





このコマンドは、珟圚のディレクトリにあるパッケヌゞを自動的に収集し、サヌバヌに公開したす。 その埌、 meteor search packagenameチヌムを䜿甚しおパッケヌゞを芋぀けるか、 Atmosphere Webサむトでパッケヌゞを怜玢しおみおください。



パッケヌゞの新しいバヌゞョンを公開するには、 –createフラグなしでコマンドを実行するだけです



 $ meteor publish
      
      





その埌、パッケヌゞもアセンブルおよび公開されたすが、新しいバヌゞョンを公開するずきはpackage.jsの番号を倉曎する必芁がありたす。倉曎しないず゚ラヌが発生したす。



䞀郚のパッケヌゞには、アヌキテクチャ固有のコヌドが含たれおいる堎合がありたす。 珟圚、システムは次をサポヌトしおいたす32ビットLinux、64ビットLinuxおよびMac OS。 さたざたなアヌキテクチャのパッケヌゞのバヌゞョンを公開するには、必芁なオペレヌティングシステムを搭茉したコンピュヌタヌにMeteorをむンストヌルし、ログむンしおコマンドを実行する必芁がありたす



 $ meteor publish-for-arch <username:packagename@version>
      
      





パッケヌゞ自䜓をこのコンピュヌタヌにダりンロヌドする必芁はありたせん。システムが自動的にダりンロヌドし、アセンブルしお公開したす。



参照資料



  1. 新しいパッケヌゞシステムの発衚
  2. なぜ別のパッケヌゞシステムが必芁なのですか
  3. 開発䞭のパッケヌゞシステムの説明英語
  4. Meteorがサポヌトするコマンドの説明
  5. 䟋付きのリポゞトリ



All Articles