LoginSignup
1
2

More than 3 years have passed since last update.

VSCodeでローカルのコマンドを実行する

Last updated at Posted at 2021-04-11

準備しておくもの

  • Visual Studio Code (VSCode)
  • Node.js (npm)
  • VSCode で npm install を実行した作業フォルダ (WorkFolder)

発生したこと

npm でローカルにインストールしたコマンドを VSCode のターミナルから実行しようとしたら、以下のエラーが出た。

ターミナル[powershell]
PS C:\XXX\WorkFolder> yarn dev
yarn : 用語 'yarn' は、コマンドレット、関数、スクリプト ファイル、または操作可能な
プログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが
含まれている場合はそのパスが正しいことを確認してから、再試行してください。
...

エラー解決のためネットで調べてみても、欲しい内容が点在していて解決に時間がかかった。

なので、解消までの手順をまとめてみた。

解消までの手順

1. ローカルに設定ファイルを配置

2021/05/07 VSCode のバージョンアップで設定ができなくなった可能性あり (2021/05/08追記)

最初に行き着いたのは 環境変数の PATH にパスを通す必要がある ということ。
これをするにはまず、WorkFolder に設定ファイル (settings.json) を配置する必要がある。

WorkFolder
  |- .vscode             <-- 無ければフォルダ作成
  |    |- settings.json  <-- 無ければファイル作成
  …

(VSCode 全体の settings.json もあるようだが、当然こちらは汚さない)

英語ペラペラな方は以下を確認してね

2. 環境変数を設定する

2021/05/07 VSCode のバージョンアップで手順変更 (2021/05/08追記)

用意した settings.json に以下の内容を記載する。
(既に配置されていれば追記する)

.vscode/settings.json
{
    "terminal.integrated.env.windows": {
        "PATH": "${workspaceFolder}\\node_modules\\.bin;${env:PATH}"
    }
}

terminal.png

ターミナル画面右のリストから「ターミナル設定の構成」を選択。
開いた設定画面の Terminal > Integrated > Profiles > Windows を開いて、下記の修正をする。

settings.json
    "terminal.integrated.profiles.windows": {
        "PowerShell": {
            "source": "PowerShell",
-           "icon": "terminal-powershell"
+           "icon": "terminal-powershell",
+           "env": {
+               "PATH": "${workspaceFolder}\\node_modules\\.bin;${env:PATH}"
+           }
        },

${workspaceFolder}VSCode で開いているフォルダのパスが入る ので、これを利用してnode_models/.bin までの(フル)パスを追加する。

追加できているかどうかは、ターミナルで以下のコマンドを実行する。
(既に開いているターミナルには反映されないので開き直す)

ターミナル[powershell]
PS C:\XXX\WorkFolder> $env:path
C:\xxx\node_modules\.bin;...

追加したパスが表示されていれば成功。
(ターミナルを開き直すと、VSCode からポップアップが出ることもある)

3. PowerShell の実行ポリシー変更

これで解決!と思いきや、まだあるのね。

ターミナル[powershell]
PS C:\XXX\WorkFolder> yarn dev
yarn : このシステムではスクリプトの実行が無効になっているため、ファイル
C:\XXX\WorkFolder\node_modules\.bin\yarn.ps1 を読み込むことができません。
...

これは PowerShell の実行ポリシーを変更する 必要がある。
ターミナルからは変更できないので、コマンドプロンプトを管理者として実行する。

コマンドプロンプト
C:\XXX> PowerShell Set-ExecutionPolicy RemoteSigned

これで、晴れてローカルのコマンドが実行できるようになった!

ターミナル[powershell]
PS C:\XXX\WorkFolder> yarn dev
yarn run v1.xx.xx
...
1
2
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
1
2