Visual Studio Code Yeomanの拡張機能をインストール
概要
Visual Studio Code(VS Code)は高機能エディタなのでVisual Studioのようなプロジェクトテンプレートを作成する機能はありません。前回は1から作成してみましたが、YeomanのCode Generatorを使うのが一般的なようです。
今回はコマンドパレット上で実行できるようにVS Codeの拡張機能としてインストールします。
環境
OS X EI Capitan バージョン 10.11.4
Visual Studio Code バージョン 1.0.0
dnvm(.NET Version Manager) - Version 1.0.0-rc2-15546
ランタイムはmonoで1.0.0-rc1-update2
$ dnvm list Active Version Runtime Architecture OperatingSystem Alias ------ ------- ------- ------------ --------------- ----- 1.0.0-beta4 mono linux/osx 1.0.0-beta6 mono linux/osx 1.0.0-rc1-update2 coreclr x64 darwin * 1.0.0-rc1-update2 mono linux/osx default
Yeomanのインストール
まずはyo bower grunt gulpの4つのツールをインストール
$ npm install -g yo bower grunt-cli gulp
Generatorのインストール
ASP.NET Core 1.0 プロジェクト用のジェネレータをインストールします。
$ npm install -g generator-aspnet
他にも色々なジェネレータがあるみたい。
Generator一覧
http://yeoman.io/generators/
ターミナルからプロジェクト作成
適当な場所にディレクトリを作成し、`yo`のコマンドを実行します。
$ mkdir consoleApp $ cd consoleApp/ $ yo aspnet
対話形式でプロジェクトテンプレートの作成が始まります。
ASP.NET Core 1.0 プロジェクト用のジェネレータはコンソールアプリやWebアプリ、Web API、クラスライブラリなどの雛形を作ってくれるんですね!
今回はコンソールアプリを選択します。
アプリケーション名を入力するとプロジェクトテンプレートが作成されました。.gitignoreとかも作ってくれる!便利!
あとは指示された通りのコマンドを実行し、Hello Worldが出力されればok!
$ cd yo_consoleApp/
$ dnu restore
$ dnu build
$ dnx run
Hello World
Visual Studio Codeからプロジェクト作成
上記の内容をVisual Studio Codeで行えるよう拡張機能としてyoをインストールしておきます。
拡張機能のインストール
コマンドパレット(⇧ ⌘P)よりext installと入力し拡張機能のインストールを選択します。
一覧を取得しに行くので、さらにyoと入力し絞り込み、yo(0.8.4)をインストールします。
yo | Visual Studio Marketplace
完了したら一度VS Codeを再起動します。
プロジェクト作成
適当な場所にディレクトリを作成し、VS Codeを起動します。
$ mkdir ext_consoleApp $ cd ext_consoleApp/ $ code .
コマンドパレットよりyoと入力すると、対話形式でプロジェクトテンプレートの作成が始まります。
ジェネレータを選択します。
ここでジェネレータがインストールされていないと
Make sure to install some generators first.
と表示されます。拡張機能のyoだけインストールしてもダメです。ターミナルより必要なジェネレータをインストールしておく必要があります。
アプリケーションの作成は★ appを選択します。
コンソールアプリを選択して、
アプリケーション名を入力するとプロジェクトテンプレートが作成されます。
OmniSharpの炎のアイコンからプロジェクトを選択します。
今回作成したプロジェクトを選択します。
Restoreを促されるので実行すると、ターミナルに制御が移りパッケージが復元されます。
コマンドパレットよりdnxと入力しRun Commandを選択します。
作成したアプリを選択すると、ターミナルに制御が移りHello Worldが出力されればok!
実行結果
ハマったポイントメモ
brew updateでエラー
brewのアップデートを行ったところ以下のエラーが発生しました。
$ brew update Error: The /usr/local directory is not writable. Even if this directory was writable when you installed Homebrew, other software may change permissions on this directory. Some versions of the "InstantOn" component of Airfoil or running Cocktail cleanup/optimizations are known to do this. You should probably change the ownership and permissions of /usr/local back to your user account. sudo chown -R $(whoami):admin /usr/local
どうもOS X El Capitanにアップデートした際に/usr/localディレクトリの権限が変更されてしまったようです。ここはエラーメッセージに従い、
$ sudo chown -R $(whoami):admin /usr/local
を実行。さらに、
$ brew doctor
でWarningも解決しておきました。
再度、brew updateを実行し無事アップデートできました。
dnuでエラー
$ dnu restore
ここでpermission denied!
dnuコマンドを確認したところ実行権限がなかったので権限を付与しました。
chmod u+x /Users/<ユーザ>/.dnx/runtimes/dnx-mono.1.0.0-rc1-update2/bin/dnu
調べてみたところ、dnvmのバージョンが古かった可能性があるっぽいです。プレビュー版をインストールした時のままでbata版だったからかも。
$ dnvm update-self
dnvm自体のアップデートも忘れずに!