LoginSignup
3
3

More than 5 years have passed since last update.

gulp-shellをwindowsのコマンドプロンプトで使うとエラーが出てしまった話

Posted at

何が起きたのか

普段TypeScirptを利用して開発しており、最近gulpプラグインのgulp-shellを導入して、tscコマンドをgulpから実行するようにビルド方法を変更しました。

ところがWindows環境で開発をしている方から、下記のようなエラーが出てビルドできないという報告が入ったので、これをどう対処したかという話をメモしておきます。

[15:53:08] Starting 'tsc'...
'$' �́A�����R�}���h�܂��͊O���R�}���h�A
�����\�ȃv���O�����܂��̓o�b�` �t�@�C���Ƃ��ĔF�������Ă��܂����B
[15:53:08] Finished 'tsc' after 38 ms

まずエラーメッセージを読めるようにする

コマンドプロンプトで文字コードがUTF-8なテキストを表示するを参考に、

  • フォントをMSゴシックに変更
  • 下記コマンドを実行
chcp 65001

再度ビルドを走らせる

# 前略
'$' is not recognized as an internal or external command,
operable program or batch file.
# 後略

ok.

エラーメッセージでググる

それっぽいのが出てきた
'cmd' is not recognized as an internal or external command, operable program or batch file

パスが通ってない時にでるエラーメッセージらしい。
いやパスは通ってるでしょ・・・と思うがgulp-shellが悪さしてるもんだととりあえず仮説をたてる

gulp-shellのREADMEを眺める

なんかそれっぽいオプションがあった
options.env

こいつを入れてやったら無事に動作してくれた。

終わりに

gulp-shell使ってTSのトランスパイル早くなったのはいいけど、gulpが吸収してくれてた実行環境の差異に振り回されちゃった感じですね。

今回の対処以外にも、tscの実行をnpm scriptsに寄せるという方法も考えましたが、なるべくgulpで完結させたかったのでうまい具合に解決策見つかって良かったです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3