質問するログイン新規登録

Q&A

0回答

117閲覧

VSCodeで自作拡張機能をデバッグ実行時「command 'extension.runShellScript' not found」 エラーとなる。

Android-student

総合スコア9

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

0グッド

0クリップ

投稿2026/09/13 14:58

0

0

実現したいこと

VSCodeでShellScriptを実行する拡張機能を自作しており、デバッグと実際に動作させたい。
なお、VSCodeのターミナルよりShellScriptを直接指定(省略:~/pm$ src\script\script.sh)すると実行可能。

発生している問題・分からないこと

画面下部ステータスバー左側の実行とデバッグアイコンのRun Extention(プロジェクト名)を押下し、コマンドパレットにRun Extentionと入力し、新たなVS Codeウィンドウを起動する。
新たなVS Codeウィンドウでコマンドパレットより「コマンドの表示と実行 >」を選択し、「> Run Shell Script」と入力すると「command 'extension.runShellScript' not found」 エラーとなる。

エラーメッセージ

error

1コマンド 'Run Shell Script’ でエラーが発生しました 2 3command 'extension.runShellScript' not found

該当のソースコード

構成 VSCodeエクスプローラー上の表示 pm ├── .vscode │ ├── extension.json │ ├── launch.json │ ├── setting.json │ └── tasks.json ├── node_modules(配下は省略) ├── out │ ├── test │ │ ├── extension.test.js │ │ └── extension.test.js.map │ ├── extension.js │ └── extension.js.map ├── src │ ├── script │ │ └── script.sh ( ← 今回このShellScriptを実行させたい) │ ├── test │ │ └── extension.test.js │ └── extension.js ├── .vscode-test.mjs ├── .vscodeignore ├── CHANGELOG.md ├── eslint.config.mjs ├── package-lock.json ├── package.json ├── pm-0.0.1.vsix ( ← 開発中に作成し、他の方にインストールしてもらったが何も動かなかった。) ├── tsconfig.json └── vsc-extention-quickstart.md

Json

1pm\.vscode\launch.json 2 3{ 4 "version": "0.2.0", 5 "configurations": [ 6 { 7 "name": "Run Extension", 8 "type": "extensionHost", 9 "request": "launch", 10 "runtimeExecutable": "${execPath}", 11 "args": [ 12 "--extensionDevelopmentPath=${workspaceFolder}" 13 ], 14 "outFiles": [ 15 "${workspaceFolder}/out/**/*.js" 16 ], 17 "preLaunchTask": "npm: watch", 18 "sourceMaps": true 19 } 20 ] 21} 22 23 24pm\package.json 25 26{ 27 "name": "pm", 28 "displayName": "pm", 29 "description": "", 30 "version": "0.0.1", 31 "engines": { 32 "vscode": "^1.103.0" 33 }, 34 "categories": [ 35 "Other" 36 ], 37 "main": "./src/extension.js", 38 "contributes": { 39 "commands": [ 40 { 41 "Language": "typescript", 42 "command": "extension.runShellScript", 43 "title": "Run Shell Script" 44 } 45 ] 46 }, 47 "scripts": { 48 "vscode:prepublish": "npm run compile", 49 "compile": "tsc -p ./", 50 "watch": "tsc -watch -p ./", 51 "pretest": "npm run compile && npm run lint", 52 "lint": "eslint src", 53 "test": "vscode-test" 54 }, 55 "devDependencies": { 56 "@types/mocha": "^10.0.10", 57 "@types/node": "^22.20.2", 58 "@types/vscode": "^1.103.0", 59 "@vscode/test-cli": "^0.0.12", 60 "@vscode/test-electron": "^2.5.2", 61 "eslint": "^9.39.3", 62 "typescript": "^5.9.3", 63 "typescript-eslint": "^8.56.1" 64 } 65} 66 67

Javascript

1pm\out\test\extension.test.js 2 3"use strict" 4Object.defineProperty(exports, "__esModule", { value: true });

Typescript

1pm\src\test\extension.js 2 3import * as assert from 'assert'; 4import * as vscode from 'vscode'; 5 6 7pm\src\extension.ts 8 9import * as vscode from 'vscode'; 10import { execFile} from 'child_process'; 11import * as path from 'path'; 12import * as fs from 'fs'; 13 14export function activate(context: vscode.ExtensionContext) { 15 let disposable = vscode.commands.registerCommand('extension.runShellScript', () => { 16 const scriptPath = path.join(context.extensionPath, 'src', 'script', 'script.sh'); 17 console.log(`実行予定スクリプト: ${scriptPath}`); 18 if (!fs.existsSync(scriptPath)) { 19 vscode.window.showErrorMessage(`シェルスクリプトが見つかりません: ${scriptPath}`); 20 return; 21 } 22 try { 23 fs.chmodSync(scriptPath, 0o755); 24 } catch (err) { 25 vscode.window.showErrorMessage(`chmod に失敗しました: ${(err as Error).message}`); 26 return; 27 } 28 29 execfile(scriptPath, [], { shell: '/bin/bash' }, (error, stdout, stderr) => { 30 if (error) { 31 vscode.window.showErrorMessage(`実行エラー: ${error.message}`); 32 return; 33 } 34 if (stderr) { 35 vscode.window.showErrorMessage(`スクリプト警告: ${stderr}`); 36 } 37 vscode.window.showErrorMessage(`スクリプト出力:\n${stdout}`); 38 }); 39 }); 40 context.subscriptions.push(disposable); 41} 42 43export function deactivate() {} 44 45module.exports = { 46 activate, 47 deactivate 48}; 49

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

Microsort Edgeで「vscode 拡張機能 コマンドパレットに入力したコマンドが見つかりません」と検索し、ターミナルから「npm run compile」を実行しても変化が無かった。

補足

ソースコードは主要と判断したもののみを掲載しています。
必要でしたら別途追加いたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.25%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問