2016年11月8日火曜日

typescript環境構築の自分用メモ

typescript環境構築の自分用メモ

yoは入れておく。
yo aspnetで足場は作れるようにしておく。

typings install dt~jquery --save --global

とかやると typings/globals/jquery/** に型定義ファイルができる。
typings/index.d.tsをrefernce指定すれば補完が効く。

gulpを使うためにgulpfile.jsを作っておく。

gulpfile.jsのなかみは以下のような感じ。

var gulp = require('gulp');
//var del = require('del');

var paths = {
unify: [
'app.js',
'app.js.map'
],
scripts: [
'TypeScript/**/*.tsx',
'TypeScript/**/*.ts',
'TypeScript/**/*.map'
]
}

gulp.task('default', function () {
//del(['wwwroot/TypeScript/**/*']);
//del(['wwwroot/js/*']);
gulp.src(paths.unify)
.pipe(gulp.dest('wwwroot/js'));
gulp.src(paths.scripts)
.pipe(gulp.dest('wwwroot/js/TypeScript'));
});

delはあってもなくてもよい。
ワークスペースのフォルダ構成は以下の感じ。

/TypeScript
   →ここに*.tsを入れとく
/Views
   →cshtmlはこの下に置かれる。
/Controllers
   →コントローラのコードはここに置かれる。
/wwwroot
   /js
      ここにコンパイルされたjsが配置される。



2016年11月7日月曜日

GOLANG@VS.CODE自分用メモ

GOPATHの設定をどうするか的な話。
プロジェクトごとにルートパスが違うのでシステムに単一のGOPATHだと
いやだなぁと思っていて、かと言って相対パスでローカルパッケージを
指定してもvs.codeでローカルパッケージだとインテリセンスが効かない
のも嫌だなぁというのをなんとか解決する話。

GOROOTを.bash_profileに設定する。

 export GOROOT=/usr/local/opt/go/libexec

.bash_profileにcode .とうつと起動するように仕込みを入れる。

code () {
    if [[ $# = 0 ]]
    then
GOPATH=$(pwd)
        open -a "Visual Studio Code"
    else
GOPATH=$(pwd)
        [[ $1 = /* ]] && F="$1" || F="$PWD/${1#./}"
        open -n -a "Visual Studio Code" --args "$F"
    fi
}

exportしないでGOPATHをワークスペースに設定しておく。
こうすると、vs.codeで自前パッケージのインテリセンスが有効になる。

起動後に.vscode下にtasks.jsonを作る。
以下のような感じ

{
    "version": "0.1.0",
    "command": "go",
    "showOutput": "always",
    "options": {
        "env": {
            "GOPATH": "${workspaceRoot}"
        }
    },
    "tasks" :[
        {
            "taskName": "build",
            "args": ["-v"],
            "isBuildCommand": true
        },
        {
            "taskName": "run",
            "args": ["-v"]
        },
        {
            "taskName": "test",
            "args": ["-v"],
            "isTestCommand": true
        }
    ]
}

options/env下にGOPATHを${workspaceRoot}で設定しておくのがポイント。
ワークスペース以下のフォルダ構造は以下のような感じにする。

${workspaceRoot}
    /pkg/... → ここの下に.aファイルが勝手にできる
    /src/[パッケージフォルダ]
    mainパッケージのファイルはベタ置き

デメリットはgo getしたやつは個別のワークスペースに展開されるので
ファイルサイズが大きくなる。
けれど、今時ならOKOKということで。

2017/01/11 追記
src下にmain.goを置くとデバッグできないのはdleveのバグっぽいが試していない。