Node.jsのコードを新規生成するときの前準備。GitHub利用前提のメモ。

# はじめに

Qiita投稿とコーディングのリハビリが目的のメモです。
ゼロからNode.jsコードを新規作成する際の前準備です（Cloneするのではなく、という意図）。
イマイチ覚えてなくて「どうやるんだっけー？」に、なったのでメモします。

以下を前提とした環境を作ることが目的です。

 - 作業メモと複数環境でコーディングを目的にGithub利用
 - テストフレームワークにmocha利用

あと、ついでにVSCodeの初期設定もメモ（後述）。

# 先ずGitHubで新規リポジトリ作成

webブラウザーでGithubにログインして、新規リポジトリを作成。

その際には、
Create a new repository
で
「Add .gitignore: Node」
を選んでおく。
ライセンスは適当に。私はたいてい
「Add a license: MIT License」
を選択。


![add_gitignore_nodeしておくのが楽.png](https://qiita-image-store.s3.amazonaws.com/0/125588/a4d87366-f955-e80c-fd28-4a549dc853f6.png)

- 同期しないファイル／フォルダーが、いい感じに設定される


# Windows OSクライアントのGitHubクライアント立ち上げてローカルに取り込む

Webブラウザー上で作成したリポジトリに移動。「Clone」ボタンを押して、Clone用のUriをコピーする。

ローカルでGitHubクライアント立ち上げて、リモートリポジトリからCloneを選択。

さっきのUri貼り付けて、ローカルへの取り込みを実行。

無視するファイルの設定ファイル「.gitignore」を開いて、下記を下に追加する。
（Mac向けも記載されているのは、ご愛嬌w）

```gitignore:追加する無視ファイルと拡張子
# =========================
# Operating System Files
# =========================

# Windows
# =========================

# Windows image file caches
Thumbs.db
ehthumbs.db

# Folder config file
Desktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msm
*.msp

# Windows shortcuts
*.lnk

# =========================
# Operating System Files
# =========================

# OSX
# =========================

.DS_Store
.AppleDouble
.LSOverride

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

# Directories of tool
coverage

# Local bat file
*.bat


```

# フォルダ作成
mkdir   src
mkdir   test

ソースコード用と、テストドライバー用を作成する。

# テストフレームワークを取得

開発時のみ、で設定する。

- npm init
 - test command: node_modules\\.bin\\mocha
- package.json編集
 - script欄に「"start": "node server.js"」（ファイル名は適宜）を追加する。
- 以下のコマンドで、テストフレームワークを（ローカル）インストする。

```
npm install mocha chai sinon promise-test-helper   --save-dev
```

# VSCode の設定（任意）

Visual Studio Codeをエディターとして使うなら、srcフォルダーと同じ階層に「.vscode」フォルダー作って以下のファイルを保存する。

メニューから自動生成できた気もするけど、覚えてない。
ペタッと貼り付ける場合はコレ。VSCode v1.15.1で動作確認。

こうしておくと、
「Ctrl + Shift + P 」でコマンドパレットを開けて
「tasks test」って打つとテストが走って(ﾟдﾟ)ｳﾏｰ。
開いた「出力」ペインは「Ctrl + Shift + U 」で閉じれる。
快適ー。

```json:tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "npm",
    "isShellCommand": true,
    "showOutput": "always",
    "suppressTaskName": true,
    "tasks": [
        {
            "taskName": "install",
            "args": ["install"]
        },
        {
            "taskName": "update",
            "args": ["update"]
        },
        {
            "taskName": "test",
            "args": ["run", "test"]
        }
    ]
}
```

# コーディングの方針（検証目的時）

「こんなコードで動くんかな？」を試すときは、以下。

1. srcフォルダ配下にお試しコードを書く。
1. その関数をexportsする。
1. testフォルダ配下に、それをキックするテストドライバーのコード書く。
 - 外部環境への依存何ぞこの時点では気にしない。がつがつ依存してOK。
1. Inputに対して期待した応答（Output）するか、を
テストフレームワークベースで確認していく。

後に、この時のお試しコード、テストコードは、ともにコメントアウトするか、バッサリ削除していく。
GitHubに突っ込んであるので、必要に応じて履歴辿りも楽。

※【注意】GitHubで公開モードなので、パスワードとかアクセスきーは、コード中に書かない事。環境変数を用いて設定。実行時にbatファイルに書いて、ラッパーするのはOK。⇒そのために、「同期対象外」に「*.bat」を設定。


以上ー。
（※これは、あくまで私個人のメモです。）