2019/05/31 に公開 2287 views

このエピソードについて

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 がきたらどうする?
    • それ自体はとても魅力的
    • きたら使っていっても良いかもしれない

クロージング

Refs

  • BGM&SE
    • 魔王魂/騒音のない世界/OtoLogic