JupyterLab に Gitを導入する手順

[おすすめ拡張機能8選](https://qiita.com/canonrock16/items/d166c93087a4aafd2db4)
の記事をみて、jupyterlab-gitを使おうとして、詰まったのでメモ
##環境
- JupterLab v 2.1.5
- anaconda

## [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git)をインストールする

READMEから以下のコマンドを打つ(conda環境なのでcondaでインストールしました。)

```bash
$ conda install jupyterlab-git #pipの方は、pip install --upgrade jupyterlab-git
#インストール完了
$ jupyter lab build
#エラー
```

JupyterLabの拡張機能画面から、`git`と打って`@jupyterlab/git`からインストールできますが、多分nodejsが入っていないと同じエラーが出ると予想されます。 

##エラー発生
詳しいエラーを出力してくれました。
結論から言うと`nodejs`のバージョンを上げろってことらしい。
読みたい方はエラー内容を[最後に貼りましたので参照](https://qiita.com/appgrape/items/5f1ba25a4723ca50dae7#%E4%BB%98%E9%8C%B2%E3%82%A8%E3%83%A9%E3%83%BC%E5%86%85%E5%AE%B9)してください。

##やること

最後の最後に答えがありました。
🔴`ValueError: Please install nodejs >=10.0.0 before continuing. `

``コマンドでnodejsの**バージョンを確認**。

```bash
$ conda list

#結果
nodejs | 6.13.1 0 |conda-forge
```

**無事バージョンが10.0以下で低かったので**バージョンを上げる作業をしたいと思います。
## nodejsをインストールしていない人

まずnodejsをインストールしていない人はこのコマンドを叩いてインストールしてください！



```bash
$ conda install -c conda-forge nodejs
```

**※インストールしてバージョンが10以下だったら下のコマンドを打ってください。**

## nodejsのバージョンを上げる

私はconda環境を使っているのでcondaコマンドを用います。pipでもいけると思います。

```bash
$ conda update nodejs

nodejs-10.13.0
```

バージョンアップが完了したら最後にjupyter-gitをビルド、

## もう一度`jupyter lab build`
`jupyter lab build`が終わったら、`jupyter lab`を実行!
![JupyterLab.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/240708/4397e0ea-4666-70ac-fcdc-52cb6f933a70.png)
エラーが出る場合、キャッシュが残っている可能性があるため、⌘ + R でキャッシュをクリアして現在のページを再読み込みしてください。
バージョンがアップされていれば更新されるはずです。

##最後に
condaやnodejsを使い慣れている人は詰まらないかもしれませんが、もしも大量のエラーログをみて諦めそうになった人のためにこの記事を書きました。

これから、flake8の記事も描こうと思います。

少しでも参考になったら幸いです！

## [付録]エラー内容
教訓:エラーログ**エラーログは最初と最後が肝心**

```bash
$jupyter lab build

[LabBuildApp] JupyterLab 2.1.5
[LabBuildApp] Building in /Users/hirokazu/opt/anaconda3/share/jupyter/lab
Build failed.
Troubleshooting: If the build failed due to an out-of-memory error, you
may be able to fix it by disabling the `dev_build` and/or `minimize` options.

If you are building via the `jupyter lab build` command, you can disable
these options like so:

jupyter lab build --dev-build=False --minimize=False

You can also disable these options for all JupyterLab builds by adding these
lines to a Jupyter config file named `jupyter_config.py`:

c.LabBuildApp.minimize = False
c.LabBuildApp.dev_build = False

If you don’t already have a `jupyter_config.py` file, you can create one by
adding a blank file of that name to any of the Jupyter config directories.
The config directories can be listed by running:

jupyter --paths

Explanation:

- `dev-build`: This option controls whether a `dev` or a more streamlined
`production` build is used. This option will default to `False` (ie the
`production` build) for most users. However, if you have any labextensions
installed from local files, this option will instead default to `True`.
Explicitly setting `dev-build` to `False` will ensure that the `production`
build is used in all circumstances.

- `minimize`: This option controls whether your JS bundle is minified
during the Webpack build, which helps to improve JupyterLab’s overall
performance. However, the minifier plugin used by Webpack is very memory
intensive, so turning it off may help the build finish successfully in
low-memory environments.

An error occured.
ValueError: Please install nodejs >=10.0.0 before continuing. nodejs may be installed using conda or directly from the nodejs website.
See the log file for details:  /var/folders/sk/rwp7z_r93q92lx1xzwmbxcxr0000gn/T/jupyterlab-debug-rm7nmhd3.log
```

中間くらいのエラーログは、「メモリが足りないよ。」というメッセージでした。終わり