パステル色な日々

気ままに綴るブログ

VSCodeでnpm scriptsのタスクを実行する

VSCodeを使い始めました。1.0がリリースされるのが楽しみですね。
ところでTypeScriptを使う上でビルドタスクの設定に困ったので書いていきます。

tasks.json

VSCodeはビルドタスクを設定できます。
プロジェクト内で設定すると .vscode ディレクトリの中に tasks.json が作られます。
そのあたりの概要は公式サイトに書いてあるのですが npm scripts に書いたタスクを設定する方法について書かれていないのでここで紹介します。

{
  "version": "0.1.0",
  "command": "npm",
  "windows": {
    "command": "npm.cmd"
  },
  "isShellCommand": true,
  "suppressTaskName": true,
  "tasks": [
    {
      "taskName": "build",
      // Make this the default build command.
      "isBuildCommand": true,
      "args": ["run", "build"],
      // Show the output window only if unrecognized errors occur.
      "showOutput": "silent"
    }
  ]
}

これは npm run build コマンドの設定です。
それぞれのプロパティの意味については公式サイトに書いてあるので参照してください。
日本語なら以下のサイトを参考にすると幸せになれるかもしれません。

www.atmarkit.co.jp

tsconfig.json

VSCodeは tsconfig.jsonfilesGlob プロパティを設定しても認識してくれてないみたいです。
全然関係ないんですが angular のリポジトリにある tsconfig.json を見ると fileGlobs となっているんですよね。
エディタやそのプラグインによって違うのでしょうか?

Symbol と Iterator の型定義

どうやって解決するのかわからなかったのです。
どのファイルで解決できるのか探してたんですがなにかいい方法あるのでしょうか。
結局、以下の様な感じになりました。

{
    "compilerOptions": {
      "module": "commonjs",
      "target": "es5",
      "noImplicitAny": true,
      "sourceMap": true,
      "outDir": "tsc"
    },
    "files": [
      "./typings/main.d.ts",
      "./node_modules/typescript/lib/lib.es6.d.ts",
      "./src/index.ts"
    ]
}

"./node_modules/typescript/lib/lib.es6.d.ts" これで解決しました。
(これでいいのかはわからないです!)