VSCodeのワークスペースを作って、ClusterScript向けの機能をインストールする(個別環境構築編)
「VSCodeで捗らせる!幸せなCluster Script開発」連載記事一覧
-
VSCode、Node.js、Gitをインストールして、各種用語をざっくり確認する
(共通環境構築編)VSCode、Node.js、Gitをインストールする。 -
VSCodeのワークスペースを作って、ClusterScript向けの機能を入れる
(個別環境構築編)VSCodeのワークスペースを作成する。必要なパッケージをnpmでインストールする。 -
VSCodeで複数のClusterScriptを一つにまとめたり、圧縮したりする
(設定編)VSCodeのtasks.json、launch.jsonを作成する。webpackのwebpack.config.jsを作成する。 -
ClusterScriptのファイルを分割したり、$を含めてテストする
(コーディング実践編)型定義ファイルについて。ES Modulesでモジュールを書く。Mocha、Chai、Sinon.JSでテストを書く。$のテストダブルを作る。 - スクリプト共有編 予定
こんにちは!かおもです!
前回は全体的な環境を構築しましたので、今回は個別の環境を構築していきます。
イメージとしては、Unityのプロジェクトを作っていくつかアセットを入れます、ぐらいの感覚です。
1:フォルダーを準備する
おそらくこの記事を読まれてる方のほとんどは、Assets以下のjsファイルを直接VSCodeで編集されているかと思います。
しかし、この連載記事では、別のフォルダーで編集したjsファイルを、VSCode上の操作で、必要に応じてAssets以下にコピーするような方法をとります。
- 基本的な方法
- この連載記事での方法
ですので、まずAssets外のお好きなところにフォルダを作ってください。
この記事では以降、そのフォルダを作業フォルダと呼びます。
また、jsファイルのコピー先のフォルダをAssets内フォルダと呼びます。
Assets以下にフォルダを作らないワケ
これからの作業にて、jsファイルがあるフォルダあたりに大量のファイルが作られます。
Unityがそれらのファイルに対して何をしてくるか、またその時のUnityの動作がどうなるか不明なので、念のために回避しようという考えです。
一応、こちらの記事によると、非表示フォルダにしておくなどの手はありそうですが、そうすると今度はVSCode側でどうなるか分からないので、面倒そうなことはやめとこうという考えです。
2:VSCode上でフォルダーを管理する設定をする
それでは、VSCodeを開いてください。
画面左側にエクスプローラーが表示されていなかったらctrl+shift+E
を押して開いてください。
画面左側のエクスプローラーにフォルダーを開く
ボタンがありますので、それを押し、先ほど作った作業フォルダを開いてください。
ここではHappyClusterScriptというフォルダ名にしています。
このフォルダに、先ほどの作業フォルダとAssets内フォルダを登録して管理できるようにするファイル(ワークスペースファイル)を作ります。
画面上側のメニューからファイル
>名前を付けてワークスペースを保存
と選択してください。
すると、フォルダ名と同名のファイル名のワークスペースファイルを保存しようとしますので、そのまま保存してください。別の名前で保存しても大丈夫です。
そのまま保存すると、エクスプローラーにそのファイルが表示されるのでそれをクリックして開いてください。
このfolders
という項目のところが、このワークスペースで扱うフォルダ一覧になります。
このファイルを以下のような感じに編集してください。
{
"folders": [
{
"path": ".",
"name": "work"
},
{
"path": "Z:\\Unity\\Assets\\JavaScripts",
"name": "dist"
}
],
"settings": {}
}
二つ目のpath
のところのZ:\\Unity\\Assets\\JavaScripts
の部分は、先ほどのAssets内フォルダを指定してください。
このワークスペースファイルの中身を簡単に言いますと、
作業フォルダにwork
という名前をつけ、Assets内フォルダにdist
という名前を付けた、
という内容になります。
このwork
とdist
という名前は別の所で使用するので、可能であればこの名前のままにしてください。
ファイルの修正が完了したら忘れずに保存してください。
このとき、以下のようなこのフォルダー内のファイルの作成者を信頼しますか?
というメッセージが出ると思います。
これは、Assets内フォルダが、VSCodeにとって見知らぬフォルダであるため、一旦は信頼できないものとして扱うという感じの機能です。
ですので、ここでははい
を選択してよいです。
この機能についてはこちらなどをご覧ください。
3:npmの設定を初期化する
続いて、npmの設定ファイルを作成します。
VSCodeのターミナルを開いてください。ctrl+shift+@
で開けます。
ターミナルを開く際に、どちらのフォルダで開くか聞かれますので、work
の方で開いてください。
ターミナルが開きましたら、以下のコマンドを入力してください。
npm init -y
このコマンドにより初期化(init
)が実行されます。
また、-y
のオプションにてpackage.json
に設定できる各項目を、すべてデフォルトのままでよい、というような意図をnpmに伝えています(-y
を外して実行すると、各項目について事細かに聞かれます)。
処理が完了したら、package.json
というファイルが、作業フォルダの直下に作らていることを確認してください。
このファイルはnpmが動作する上で重要なファイルですが、しばらくは編集したりする必要はありません。
このpackage.jsonとnpmの関係については、こちらやこちらの記事が詳しいです。
4:npmを使用して各種パッケージをインストールする
npmの初期化が終わりましたら、前回の記事で紹介していたnpmでインストールするパッケージをインストールしていきます。
VSCodeのターミナルをwork
で開き、以下のコマンドを入力してください。
とても長いのでコピペ推奨です。処理にもしばらく時間がかかります。
npm install --save-dev "@clustervr/cluster-script-types" chai mocha sinon terser terser-webpack-plugin webpack webpack-cli webpack-preprocessor-loader
このコマンドで必要なパッケージを丸ごとインストール(install
)しています。
以下のように、一つずつインストールしてもかまいません。
npm install --save-dev "@clustervr/cluster-script-types"
npm install --save-dev chai
npm install --save-dev mocha
(省略)
また、--save-dev
のオプションにて、実行時ではなく開発時に必要なパッケージです、という意図もnpmに伝えています。
この--save-dev
のオプションの考え方についてはこちらが詳しいです。
インストールが完了しましたら、作業フォルダ以下にnode_modules
というフォルダと、pakcage-lock.json
というファイルが作られていることを確認してください。
node_modules
フォルダ以下には、npmでインストールしたパッケージが収められています。
先述のwebpackなどを使用する際は、このフォルダ以下に収められているので、そこを参照して使用します。
pakcage-lock.json
は基本的には気にしなくてよいですが、消さないでおいてください。
pakcage-lock.json
についてはこちらやこちらが詳しいです。
余談ですが、このタイミングでClusterが提供している公式の型定義ファイルもインストールしています。
詳細は別記事で書くと思いますが、node_modules/@clustervr/cluster-script-types/index.d.ts
に入っています。
すでに実際にjsファイルを書き進められている方はそこを参照してみてください。
ここでインストールしたパッケージについての簡単な説明
- "@clustervr/cluster-script-types"
Cluster社の提供している型定義ファイル。jsファイルの開発では、これがあると、関数名などの一覧が表示され、入力ミスが減らせて便利。 - chai mocha sinon
前回の記事で触れていた、テスト系の機能。 - terser
前回の記事で触れていた、jsファイルを圧縮する機能。 - terser-webpack-plugin
Terserをwebpack経由で使用できるようにするためのプラグイン。
つまり、複数のjsファイルを一つにまとめたうえで圧縮できるようになる。 - webpack
前回の記事で触れていた、複数のjsファイルを一つのファイルにまとめる機能。 - webpack-cli
webpackをコマンドラインから使用できるようにする機能。 - webpack-preprocessor-loader
プリプロセッサという処理をwebpackで行えるようにする機能。
具体的には、コメントアウトをしなくても、動作確認時には$.log
を使用して、公開時には$.log
を使用しない、というような事ができる。
⚠ClusterScriptがアップデートしたので、型定義ファイルを更新したい
ターミナルを開いて、以下のコマンドでアップデートできます。
npm update @clustervr/cluster-script-types
5:次回、設定編
次回はVSCodeに設定を追加し、webpack(複数のjsファイルを一つにまとめる機能)やTerser(jsファイルを圧縮する機能)等を利用できるようにしていきます。
そして実際に簡単なソースコードを用意し、それらの機能を試してみます。
記事はこちらです。
以上です!よいVSCodeライフを!!
Discussion