前提
- OS: macOS Sequoia 15.1.1 (24B91)
- Homebrew インストール済み
前の macOS セットアップ記事の続きから。
Node.js のインストール
brew install nvm
mkdir ~/.nvm
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
nvm install v21.7.3
devcontainers/cli のクローン
git clone --depth 1 -b v0.72.0 https://github.com/devcontainers/cli
ビルド
cd cli
yarn
yarn compile-prod
npx nexe --python=/usr/bin/python3 --loglevel="verbose" -i ./devcontainer.js --make="-j8" -r="scripts/updateUID.Dockerfile" -t -b -o ../dist/devcontainer-darwin-arm64-v0.72.0
node 自体に手を入れるらしく、初回に node 自体のビルドが走ります。
マシンスペックによりますが、初回ビルドは 1 時間以上かかることもあるので気長に待ちましょう。
ビルド後の node は保存されるので、 2 回目以降は一瞬です。
ファイルを埋め込んでアクセスしたいなどが無ければ Node 自体の Single Binary Application の仕組みを使う方ががおすすめです(これはこれで新しい node じゃないと無理ですが…)
以上。
おまけ
上記手順でシングルバイナリにしたモノを、以下リポジトリで配布しています。
mikoto2000/devcontainers-cli: Distributing a single executable binary for devcontainer/cli.
参考資料
- nexe/nexe: 🎉 create a single executable out of your node.js apps
- node-gyp/README.md at main · nodejs/node-gyp
- node/BUILDING.md at main · nodejs/node
- M1 mac mini を買ったのでセットアップしていく - mikoto2000 の日記
変更履歴
日付 | 内容 |
---|---|
2024/11/30-1 | 新規作成 |
2024/11/30-2 | nexe の注意点について追記 |
0 件のコメント:
コメントを投稿