1.21 jigowatts

Great Scott!

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つのツールをインストール

http://yeoman.io/

  • yo : scaffoldの起点となるツール
  • bower : パッケージマネージャ
  • grunt,gulp : ビルドツール
$ 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、クラスライブラリなどの雛形を作ってくれるんですね!
今回はコンソールアプリを選択します。
f:id:sh_yoshida:20160424044653p:plain
アプリケーション名を入力するとプロジェクトテンプレートが作成されました。.gitignoreとかも作ってくれる!便利!
f:id:sh_yoshida:20160424045531p:plain
あとは指示された通りのコマンドを実行し、Hello Worldが出力されればok!

$ cd yo_consoleApp/
$ dnu restore
$ dnu build
$ dnx run
Hello World

Visual Studio Codeからプロジェクト作成

上記の内容をVisual Studio Codeで行えるよう拡張機能としてyoをインストールしておきます。

拡張機能のインストール

コマンドパレット(⇧ ⌘P)よりext installと入力し拡張機能のインストールを選択します。
f:id:sh_yoshida:20160419081726p:plain

一覧を取得しに行くので、さらにyoと入力し絞り込み、yo(0.8.4)をインストールします。
f:id:sh_yoshida:20160419081826p:plain
yo | Visual Studio Marketplace

完了したら一度VS Codeを再起動します。

プロジェクト作成

適当な場所にディレクトリを作成し、VS Codeを起動します。

$ mkdir ext_consoleApp
$ cd ext_consoleApp/
$ code .

コマンドパレットよりyoと入力すると、対話形式でプロジェクトテンプレートの作成が始まります。
f:id:sh_yoshida:20160424052845p:plain

ジェネレータを選択します。
f:id:sh_yoshida:20160424052924p:plain
ここでジェネレータがインストールされていないと

Make sure to install some generators first.

と表示されます。拡張機能yoだけインストールしてもダメです。ターミナルより必要なジェネレータをインストールしておく必要があります。

アプリケーションの作成は★ appを選択します。
f:id:sh_yoshida:20160424053453p:plain

コンソールアプリを選択して、
f:id:sh_yoshida:20160424053612p:plain

アプリケーション名を入力するとプロジェクトテンプレートが作成されます。
f:id:sh_yoshida:20160424053720p:plain

OmniSharpの炎のアイコンからプロジェクトを選択します。
f:id:sh_yoshida:20160424053820p:plain

今回作成したプロジェクトを選択します。
f:id:sh_yoshida:20160424054537p:plain

Restoreを促されるので実行すると、ターミナルに制御が移りパッケージが復元されます。
f:id:sh_yoshida:20160424054550p:plain

コマンドパレットよりdnxと入力しRun Commandを選択します。
f:id:sh_yoshida:20160424084709p:plain

作成したアプリを選択すると、ターミナルに制御が移りHello Worldが出力されればok!
f:id:sh_yoshida:20160424084752p:plain

実行結果

f:id:sh_yoshida:20160424084836p:plain

ハマったポイントメモ

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自体のアップデートも忘れずに!