UIT INSIDE

LINE UIT室の開発者による「最新のフロントエンド」をキャッチアップできる Podcast

  • 0. オープニング
    00:00
  • 1. changhee さん自己紹介
    00:38
  • 2. GitHub Package Registry と Private NPM
    01:05
  • 3. LINE 社内で動く Private NPM
    02:19
  • 4. NEXUS による管理と Private NPM の嬉しさ
    04:07
  • 5. 自作 Private NPM 用 UI「Prini」
    07:35
  • 6. Node.js ベースの OSS Registry「Verdaccio」
    12:00
  • 7. 「Verdaccio」誕生後の Private NPM 事情
    14:07
  • 8. GitHub Package Registry への期待
    16:18
  • クロージング
    18:35

ep.15 LINE 社内用 NPM パッケージの管理戦略

2019/05/31
543 views
HANATANI Takumakim.changhee

potato4d が kim.changhee に LINE 社内での Private NPM 事情について聞いてみました。

changhee さん

  • UIT室 Member
  • LINE 公式アカウント開発が中心

GitHub Package Regisry

LINE での Private NPM 事情と Private NPM の良さ

  • LINE ではパッケージレジストリを自分たちでホストしている
    • 自作パッケージの公開のため
    • 本家の内容をキャッシュしておいて落ちていても安定して使えるようにするため
    • 間違って npmjs.com に Publish していないか不安になりづらいなど心理的にも good
  • Sonatype NEXUS を利用
    • LINE では Maven, NPM, RubyGems などを一元管理する親として利用
    • NPM に適した UI はなかったりと不便な部分も……

自作の NPM Web UI 「Prini」

  • 前述の通り Private NPM だと Registry だけ立てても UI がついてこない
    • CLI からの操作で API の口自体は開いている
  • NPM Web の機能 +α ができる Web UI を開発
    • パッケージの一覧表示
    • パッケージ情報の表示
    • GitHub Enterprise と連携した Web からのパッケージリリース
      • Web からパッケージを公開するようにすると手元の環境に依存しない
      • GitHub に正しく push されていないと公開されないので健全
      • 手元が npmjs を向いていたみたいなこともなくなるのも good

Verdaccio

https://github.com/verdaccio/verdaccio

  • Node.js 製の Private NPM Registry + Web UI
    • npm install -g verdaccio からの $ verdaccio で動く
    • 設定ファイルやデータベースなしで動作可能
    • お手軽で協力
  • NEXUS から脱却できるという社内的なメリット
    • UIT が使うものは UIT で管理できる

Verdaccio 移行後の Prini と GitHub Package Registry on Enterprise

  • Verdaccio 移行後も Prini が便利な部分もある
    • 例えば、独自で実装した Web UI からのデプロイ
    • 今後も並行で稼働しそう
    • Prini を OSS にしても面白いかも?
  • GitHub Package Registry がきたらどうする?
    • それ自体はとても魅力的
    • きたら使っていっても良いかもしれない

クロージング