質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

4459閲覧

VScodeでのJavascript・Node.Jsの環境構築ができない

ghost238_gen

総合スコア16

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2022/08/06 08:02

編集2022/08/07 03:10

前提

プログラミング初学者です。お手柔らかにお願いします。

windows10 64bitのPCにて
VScodeを使ってJavaScript・Node.Jsの環境構築ができないため
解決策を教えて頂きたいです。

発生している問題・エラーメッセージ

【Powershell単体でnode -vを実行した場合】

PS C:\Users\hoge> node -v v16.16.0

【VScode内ターミナル(Powershell)でnode -vを実行した場合】

node : 用語 'node' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログ ラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれてい る場合はそのパスが正しいことを確認してから、再試行してください。 発生場所 行:1 文字:1 + node -v + ~~~~ + CategoryInfo : ObjectNotFound: (node:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

→再起動後【VScode内ターミナル(Powershell)でnode -vを実行した場合】

PS C:\Users\hoge> node -v node: The term 'node' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

考えたこと・試したこと

・VScodeのターミナルではなく、powershell単体ではnode.jsのインストール・バージョンの確認ができました。

・pythonの環境構築を行った際もパスの設定(?)が煩雑であったので
今回も同様かと思っていますが、VScodeでの設定が分からずにいます。

・いくらか検索したところ、GitやDockerを併用している記事をみかけましたが、今回はnode.jsの学習が目的なので必須でなければ余計なものはインストールしないほうがいいと思っています。

疑問点

・VScodeにてnode.jsを扱える方法があれば教えてください。(不可能であれば教えて頂けると幸いです。)

・上記エラーコードの解消方法を教えて頂きたいです。

・パスの管理や設定のためにできるwindows側の設定や管理方法などがありましたら、教えて頂きたいです。


以上です。宜しくお願い致します。

追加対応

頂いたアドバイスを基に幾つか他のコマンドを実行しました。

【Powershell単体】
$PSHOME

C:\Program Files\PowerShell\7

$PSVersionTable

Name Value ---- ----- PSVersion 7.2.4 PSEdition Core GitCommitId 7.2.4 OS Microsoft Windows 10.0.19043 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0

$env:path.split(";") | select-string node

C:\Program Files\nodejs\

gcm node

CommandType Name Version Source ----------- ---- ------- ------ Application node.exe 16.16.0.0 C:\Program Files\nodejs\node.exe

【VScode内ターミナル(Powershell)】
$PSHOME

C:\Program Files\PowerShell\7

$PSVersionTable

Name Value ---- ----- PSVersion 7.2.4 PSEdition Core GitCommitId 7.2.4 OS Microsoft Windows 10.0.19043 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0

$env:path.split(";") | select-string node

${workspaceRoot}\node_modules\.bin

gcm node

Get-Command: The term 'node' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

settings.json

{ "terminal.integrated.env.windows": { "PATH": "${workspaceRoot}\\node_modules\\.bin;${env:PATH}" }, "terminal.integrated.automationShell.windows": "", "terminal.integrated.shell.windows": "", "terminal.integrated.automationShell.linux": "", "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", "explorer.confirmDelete": false, "explorer.confirmDragAndDrop": false, "python.defaultInterpreterPath": "C:\\Users\\hogehoge\\AppData\\Local\\Programs\\Python\\Python39\\python.exe", "workbench.editorAssociations": { "*.ipynb": "jupyter.notebook.ipynb" }, "workbench.editor.untitled.hint": "hidden", "security.workspace.trust.untrustedFiles": "open", "editor.autoIndent": "none", "editor.unicodeHighlight.nonBasicASCII": false,

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Crimson_Tide

2022/08/06 08:43 編集

文面やエラーメッセージから「VScodeでのPowerShellターミナルでのnode.jsバージョンの確認時(node -v実行時)のエラーメッセージ」かと察しますが、何をしたときのエラーか明示したほうがいいでしょう。 PowerShell単体でバージョンの確認ができていることから、Node.jsインストール前に起動していたVSCodeのターミナルでnodeコマンドを実行した為、nodeへのPATHの設定が反映されておらずエラーが出た」のではないかと想像します。 VSCode上で新しくターミナルを起動し試してみてください。 それでも同様のエラーが出る場合は、一度OSを再起動してみてください。
ghost238_gen

2022/08/06 17:40

ご意見ありがとうございます。 コマンドとエラー内容を追記致しました。 また、再起動等ですが、 >VSCode上で新しくターミナルを起動 →変化ありませんでした。 >一度OSを再起動してみてください。 →何故かエラーメッセージが英語になってしまいました(?)。 上記を踏まえ、解決策等をご存知でしたら、 ご教授頂けますと幸いです。 宜しくお願い致します。
Crimson_Tide

2022/08/06 20:53

OS再起動に伴い、VSCodeの停止・起動はしているかとは思いますが、念のためVSCodeを再起動してみてください。 また以下3点の実施をお願いします。 1) PowerShell単独起動、およびVSCode上のPowerShellで、それぞれ以下4つのコマンドを実行し結果を質問欄に追記してください。 $PSHOME $PSVersionTable $env:path.split(";") | select-string node gcm node ※VSCode上での実行時、ウィンドウの横幅が狭いと表示が一部消える可能性があるため、VSCodeを横方向にできるだけ広げた状態で実行してください。 2) 1)でPowerShell単独起動でgcm nodeを実行すると node.exeへのパスが表示されると思います。 そのパスをコピーして、VSCode上のPowerShellで以下の要領で貼り付けて実行し結果を教えてください。 a) パスに空白が含まれていなければ、 C:\xxx\xxx\node.exe -v b) パスに空白が含まれていれば 以下のように先頭に&と半角スペース、貼り付けたパスを""で囲んで -v & "C:\xxx\x xx\node.exe" -v 3) settings.jsonの質問欄への追記(VSCodeで起動されるPowershellの設定に誤りがないか確認するため) ※個人情報の記載があれば適当に置き換えてください。
Crimson_Tide

2022/08/07 04:02

対応ありがとうございます。 現状、[ファイル]メニュー内下部に「フォルダーを閉じる」もしくは「ワークスペースを閉じる」がない状態ではないでしょうか? [ファイル]-[フォルダーをワークスペースに追加] もしくは[ファイル]-[フォルダーを開く]で任意の作業フォルダーを開きます。 新しくPowerShellを立ち上げて node -v を実行してみてください。
Crimson_Tide

2022/08/07 04:06

ご提示いただいたsettings.jsonですが最後に}がないでしょうか? もし提示された状態のままだとしたら赤波線が表示され、エラーが出ているかと思いますがいかがでしょうか。
ghost238_gen

2022/08/07 08:11

こちらこそありがとうございます。 >「フォルダーを閉じる」もしくは「ワークスペースを閉じる」がない状態ではないでしょうか? ありませんでした。 >新しくPowerShellを立ち上げて node -v を実行してみてください。 v16.16.0 が返ってきました。 →新しい作業を開始する時、ワークスペースを作る or 開く作業が必要という事でしょうか? >ご提示いただいたsettings.jsonですが最後に}がないでしょうか? すみません、私の記載漏れで}で閉じられています。
Crimson_Tide

2022/08/07 10:50

本事象は以下2条件が両方満たされたことで発生していると思われます。 (1) settings.jsonや、確認していませんが恐らくワークスペースの設定(.code-workspace)やフォルダの設定(フォルダの/.vscode/.settings.json)などでPATHの設定に${workspaceRoot}の文字列がある。 "PATH": "${workspaceRoot}\\node_modules\\.bin;${env:PATH}" (2) ワークスペースまたはフォルダーを開いていない >→新しい作業を開始する時、ワークスペースを作る or 開く作業が必要という事でしょうか? 上記の条件のうち(1)を満たなさなければ、必ずしも開く必要はありません。 試しに、現在のsettings.jsonのPATHの部分を以下のように書き換えて保存。 "PATH": "${env:PATH}" [ファイル]-[新しいウィンドウ]でフォルダー・ワークスペースを開いていない状態のVSCodeを起動。 PowerShellを起動してnode -vを実行するとエラーは発生しないと思います。 【原因】 フォルダー・ワークスペースを開いていないと、VSCode内変数${workspaceRoot}が不定になっているようです。(変数名から想像するに当然ですね) その為設定に "PATH": "${workspaceRoot}\\node_modules\\.bin;${env:PATH}" があると ${workspaceRoot}が単なる文字列として扱われ、原因不明ですが${env:PATH}も展開されないようです。 この状態で変数PATHを確認すると、以下のように PowerShellのパスと 2つの有効ではないパス ${workspaceRoot}\node_modules\.bin、 ${env:PATH}だけが表示されます。 PS C:\Users\username>$env:path.split(";") C:\Program Files\PowerShell\7 ${workspaceRoot}\node_modules\.bin ${env:PATH} これによりシステム環境変数(+ユーザー環境変数PATH)で定義されたPATHが消失してしまい、node.exeへのパスが得られずエラーが表示されていました。 フォルダ・ワークスペースが開いていれば、以下のようになります。 C:\Program Files\PowerShell\7 (ワークスペースかフォルダのパス)\node_modules\.bin PATH変数で定義されたパス ワークスペースについては以下リンクが参考になるかと思います。 公式ドキュメント What is a VS Code "workspace"? https://code.visualstudio.com/docs/editor/workspaces vscodeの利用に必須な”ワークスペース”の概念 https://prius.cc/itya/20181218_vscode-workspace PATHの設定を変更し、フォルダー・ワークスペースを利用せずにVSCodeを使うも、 フォルダー・ワークスペースを利用してVSCodeを使うも自由です。 ただ単体プログラムならいいですが、プロジェクトベースで利用する場合は結局フォルダー・ワークスペースベースで利用することになると思います。 また、言語毎や環境・フォルダ毎に設定変更をしたいので自分は後者を選択しています。 本件解決したようでしたら、原因(上記コピペでもいいです)とご自身が最終的に実施した対策を回答欄に記入して解決済みとしてください。
Crimson_Tide

2022/08/07 16:46

現在変数${workspaceRoot}は非推奨となっており、${workspaceFolder}が有効のようです。 現在でも互換性が保たれているようですが、${workspaceFolder}に変更しておくべきでしょう。 ただ${workspaceFolder}に変えたところで状況は変わりませんでした。 ${workspaceFolder} in launch.json and tasks.json https://code.visualstudio.com/updates/v1_17#_workspacefolder-in-launchjson-and-tasksjson Why isn't ${workspaceRoot} documented? https://code.visualstudio.com/docs/editor/variables-reference#_why-isnt-workspaceroot-documented 有効な変数 https://code.visualstudio.com/docs/editor/variables-reference#_predefined-variables
guest

回答1

0

自己解決

Crimson_Tide 様より解決方法をご教授頂きました。
ありがとうございました。


本事象は以下2条件が両方満たされたことで発生していると思われます。
(1)
settings.jsonや、確認していませんが恐らくワークスペースの設定(.code-workspace)やフォルダの設定(フォルダの/.vscode/.settings.json)などでPATHの設定に${workspaceRoot}の文字列がある。
"PATH": "${workspaceRoot}\node_modules\.bin;${env:PATH}"

(2)
ワークスペースまたはフォルダーを開いていない

→新しい作業を開始する時、ワークスペースを作る or 開く作業が必要という事でしょうか?

上記の条件のうち(1)を満たなさなければ、必ずしも開く必要はありません。
試しに、現在のsettings.jsonのPATHの部分を以下のように書き換えて保存。
"PATH": "${env:PATH}"
[ファイル]-[新しいウィンドウ]でフォルダー・ワークスペースを開いていない状態のVSCodeを起動。
PowerShellを起動してnode -vを実行するとエラーは発生しないと思います。

【原因】
フォルダー・ワークスペースを開いていないと、VSCode内変数${workspaceRoot}が不定になっているようです。(変数名から想像するに当然ですね)
その為設定に "PATH": "${workspaceRoot}\node_modules\.bin;${env:PATH}" があると
${workspaceRoot}が単なる文字列として扱われ、原因不明ですが${env:PATH}も展開されないようです。
この状態で変数PATHを確認すると、以下のように
PowerShellのパスと 2つの有効ではないパス ${workspaceRoot}\node_modules.bin、 ${env:PATH}だけが表示されます。

PS C:\Users\username>$env:path.split(";")
C:\Program Files\PowerShell\7
${workspaceRoot}\node_modules.bin
${env:PATH}

これによりシステム環境変数(+ユーザー環境変数PATH)で定義されたPATHが消失してしまい、node.exeへのパスが得られずエラーが表示されていました。

フォルダ・ワークスペースが開いていれば、以下のようになります。
C:\Program Files\PowerShell\7
(ワークスペースかフォルダのパス)\node_modules.bin
PATH変数で定義されたパス

ワークスペースについては以下リンクが参考になるかと思います。
公式ドキュメント
What is a VS Code "workspace"?
https://code.visualstudio.com/docs/editor/workspaces

vscodeの利用に必須な”ワークスペース”の概念
https://prius.cc/itya/20181218_vscode-workspace

PATHの設定を変更し、フォルダー・ワークスペースを利用せずにVSCodeを使うも、
フォルダー・ワークスペースを利用してVSCodeを使うも自由です。
ただ単体プログラムならいいですが、プロジェクトベースで利用する場合は結局フォルダー・ワークスペースベースで利用することになると思います。
また、言語毎や環境・フォルダ毎に設定変更をしたいので自分は後者を選択しています。


私が最終的に実施した対策
・settings.jsonの変更・更新
→使えない状態のままにしておいても仕方ない、と思ったため
・その上でワークスペースは都度作成
→今回は学習が目的ですが、今後の学習や用途で言語や設定を変更する可能性は高いと考えた為

投稿2022/08/08 04:02

ghost238_gen

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問