はじめに
Node.jsやPythonなどの開発環境で、VSCode上のターミナルから npx
や tsc
、eslint
などのコマンドを実行しようとしたときに、「コマンドが動かない」「実行エラーが出る」といった問題に直面したことはありませんか?
特に以下のような環境で作業していると、そういったエラーが発生しやすくなります:
- VSCodeでPowerShellを使っている
- プロジェクトがGoogle Drive、OneDriveなどのリモートフォルダ上にある
この記事では、そうした環境で起こる問題とその対処法を解説します。
代表的なエラーメッセージ
npx : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Program Files\nodejs\npx.ps1 を読み込むことができません。
このエラーは npx
だけでなく、以下のような .ps1
形式のコマンド全般で起こり得ます:
tsc
(TypeScript コンパイラ)eslint
prettier
vite
jest
pyright
pip
(Python環境により)- その他、グローバルにインストールされたCLIツール
なぜVSCodeだと動かないのか?
✅ PowerShellの実行ポリシー制限
PowerShellはセキュリティ上の理由から、.ps1
スクリプトの実行を既定でブロックしています。多くのCLIツールは .cmd
や .ps1
として実体を持っているため、この制限に引っかかると実行できなくなります。
✅ リモート同期フォルダの影響
Google Drive、OneDriveなどで同期されているフォルダ(たとえば G:\マイドライブ
)上で作業すると、Windowsのセキュリティ機構が追加的に働き、スクリプトの実行やパーミッションに影響を与える場合があります。
実際の事例
環境
– Windows 11
– VSCode
– ターミナル:PowerShell
– プロジェクトフォルダ:G:\マイドライブ\MyApp
(Google Drive for Desktop)
問題
以下のようなコマンドがVSCodeのターミナルでは動かない:
npx create-react-app myapp
tsc
eslint .
しかし、以下では正常に動作する:
- コマンドプロンプト(cmd.exe)
- ローカルディレクトリ(例:
C:\Projects\MyApp
)で実行 - PowerShell以外のシェル
対処法まとめ
✅ 方法1:ターミナルを cmd.exe に切り替える(最も安全)
Ctrl + Shift + P
→ 「デフォルトのプロファイルの選択」Command Prompt
を選択- ターミナルを再起動
これで .ps1
の実行ポリシーを気にせず、CLIツールが使えるようになります。
✅ 方法2:実行ポリシーを変更する(上級者向け)
PowerShell で .ps1
を使いたい場合は、以下のコマンドで現在のユーザーのスクリプト実行を許可します:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
⚠️ セキュリティ上のリスクがあるため、信頼できる環境でのみ使用してください。
✅ 方法3:リモートフォルダではなくローカルフォルダで作業する
同期ドライブのような「ネットワークドライブ風のフォルダ」ではなく、C:\Users\yourname\projects
などのローカルフォルダで作業することで多くの制限を回避できます。
まとめ
| 問題点 | 詳細 | 対処方法 |
—-|
| .ps1
の実行が制限される | PowerShellの既定の設定 | cmd.exeに切り替える or ポリシー変更 |
| リモート同期フォルダの影響 | 権限・実行制限が強い | ローカルに移動して作業する |
| VSCode特有の環境依存 | ターミナル設定によって挙動が変わる | プロファイル切替で解決可能 |
補足:確認コマンド
実行ポリシーの確認
Get-ExecutionPolicy -List
実際に動くかの確認(cmd.exe上で)
where npx
npx --version
まとめ
CLIツールが使えないときは「VSCodeが悪い」と思いがちですが、原因はPowerShellの制限やリモートドライブとの組み合わせにあることが多いです。
特に最近はクラウドストレージを使った開発が一般化しているので、今回のような問題に直面したらぜひこのチェックポイントを確認してみてください。