2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WindowsでNode.jsを“インストールなし(セットアップ不要)”で使う方法(ポータブル化)

Last updated at Posted at 2021-11-07

目的

次のような用途のために、Node.js を Windows 環境へインストールせずに動かせる形(ポータブル)にします。

  • Node.js アプリを USB 等で持ち運びたい
  • 管理者権限なし・セットアップウィザードなしで動かしたい
  • “Node.js 実行環境 + アプリ” をフォルダ単位で配布したい
  • (将来的に)実行ファイル化を検討する前段として、まず確実に動く梱包形態を作りたい

ここで作るのは「1 つの exe に完全に固める」方式ではなく、Node 本体(node.exe)+アプリ一式を同梱して動かす方式です。

前提

  • OS:Windows 11(64-bit)
  • ZIP 展開ができる(標準のエクスプローラーで OK)
  • フォルダに読み書きできる場所(USB/ローカルどちらでも可)

手順

1) Node.js 配布ページで使いたいバージョンを選ぶ

配布物一覧:https://nodejs.org/dist/

例:v25.2.1 を使う
https://nodejs.org/dist/v25.2.1/

image.png

2) Windows 64bit 用の ZIP をダウンロードする

  • node-v25.2.1-win-x64.zip

image.png

3) ZIP を展開する

image.png

4) 不要ファイルを削除(任意)

削除は任意ですが、最低限これらは残してください。

  • node.exe(必須:削除すると動きません)

image.png

ここから“ポータブル実行”の仕組みを作る

以降は「フォルダ内の node.exe を必ず使う」ためのラッパー(cmd/bat)を用意します。

5) node.cmd(または node.bat)を作成する

node.exe と同じフォルダに node.cmd を作成し、以下を貼り付けます。

@echo off
setlocal
set "ROOT=%~dp0"
"%ROOT%node.exe" %*
endlocal

ポイント

  • %~dp0 は「この cmd ファイルのあるフォルダ」を指します
  • %* は「渡された引数を全部」渡します

6) run.cmd(または run.bat)を作成する

同じフォルダに run.cmd を作成し、以下を貼り付けます。

@echo off
setlocal
set "ROOT=%~dp0"

rem このフォルダ内の node / npm を優先させる
set "PATH=%ROOT%;%PATH%"

rem 依存を同梱する場合の探索先(必要なら)
set "NODE_PATH=%ROOT%node_modules"

rem npmを使うならキャッシュ等もフォルダ内に閉じる(任意)
set "npm_config_cache=%ROOT%.npm-cache"
set "npm_config_prefix=%ROOT%.npm-global"
set "PATH=%ROOT%.npm-global\bin;%PATH%"

pushd "%ROOT%"
call "%ROOT%node.cmd" "%ROOT%run.js"
popd

endlocal

ポイント

  • setlocal で環境変数の変更をこの cmd 内だけに閉じます
  • pushd/popd でカレントディレクトリを安全に移動・復帰します
  • npm_config_cache 等を設定すると、npm のキャッシュがユーザー環境ではなく同梱フォルダ側に作られます

7) run.js を作成する

同じフォルダに run.js を作成し、以下を貼り付けます。

console.log("run.cmd --> run.js");
console.log("Hello!");
console.log("end");

8) 動作確認

run.cmd をダブルクリック、またはターミナルで実行します。

run.cmd

期待する出力:

image.png

仕組みが理解できたら、必要な人のみコードを書き換える

例:

image.png

参考(完成品)

ポータブル化のサンプル:

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?