# scrap-common-libraries

functions でも web でも利用する型定義などをまとめるモジュールです。

## 使い方

以下でビルドできます。

```
npm i
npm run build
```

ビルドした上で、参照して利用してください。

## 参照先での利用方法

参照先での利用方法は、以下 4 種類あります。

1. npm publish して利用する
2. npm link して利用する
3. 直接コードを参照する
4. ファイルパスで参照する

### npm publish して利用する

プロジェクトごとに型が異なるため、パッケージ名を変更し、GitHub Packages に scoped module として publish して利用してください。

### npm link して利用する

npm の使い方に習熟している場合、`npm link` は有効な利用方法です。

ただし npm link は同一の名前に対して一つのモジュールしか設定できないため、複数のプロジェクトで同時開発するには向かないので、必要に応じてモジュール名を変更する必要があります。

### 直接コードを参照する

以下のような書き方で直接コードを参照する事は可能です。

```typescript
import * as common from "../../common/src";
```

ただし、この方法はプロジェクト外に参照が突き抜けてしまうため、環境によっては上手く動かない事になります。

webpack を利用した Web 側でのみ利用するなど、注意してください。

### ファイルパスで参照する

例えば、以下のような記述を`package.json`に加えます。

```json
"scrap-common-libraries": "file:../common",
```

この上で`npm i`を実行すると、シンボリックリンクの形で利用することができるようになります。

この方法はローカルでの開発には役に立ちますが、Firebase にデプロイする時に問題になります。
