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

Q&A

解決済

1回答

254閲覧

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

Android-student

総合スコア11

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

回答1件

0

自己解決

①npm install
②npm run compile
③npm test
④npx @vscode/vsce package
を順に実行
②か③のどちらかで機能が足りないエラーが出た場合は都度インストール
pm.vscodeignore
より
src/
を無効化後、再度②~④を実施し、解決しました。

投稿2026/09/28 03:18

Android-student

総合スコア11

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.25%

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

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

質問する

関連した質問