技術日誌

野球関係のサービスを個人開発しています。

共通の設定をリポジトリ化する

経緯

現在、私が運営しているサービスのうち、

野球スコア掲載プラットフォーム

キャップ野球総合サイト

この2サービス、共通のアプリケーションサーバを持っていてUIが異なるだけなのです。

画像や設定など、2つのサイト(異なるリポジトリ)間で同じものを共有したい場合、 別のリポジトリからnpm installするのがよいようです。

実際に作ってみる

今回は試合のIDとyoutubetwitterのツイートを紐づけするconfigファイルを 共通リポジトリに置きます。

今回作ったリポジトリのindex.js

export { twMovieConfig } from './config/twMovieConfig';
export { youtubeConfig } from './config/youtubeConfig';

共有したいファイルをexportする。

package.json

{
  "name": "common",
  "version": "0.0.202001131200",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}

インポートする側のpackage.json

 {
    "dependencies": {
    ........
        "common": "https://github.com/ckoshien/common.git"
    }
  }

課題

  • 変更があった場合は毎回npmインストール
  • package-lock.jsonを削除しないとインストールできない
  • package.jsonのバージョンを上げないと変更があったと認識されない