Files
vue-ts-example-2025/.devcontainer/onCreateCommand.d/10-00-install-bun
严浩 e6731afff5
All checks were successful
CI/CD Pipeline / playwright (push) Successful in 1m33s
CI/CD Pipeline / build-and-deploy (push) Successful in 1m53s
测试最新依赖 / build-and-test (push) Successful in 1m31s
测试最新依赖 / playwright (push) Successful in 2m26s
chore: update devcontainer configuration and add setup scripts
2025-11-18 00:47:42 +08:00

50 lines
1.8 KiB
Bash
Executable File

#!/bin/zsh -eu
# >>>>> 一些参考资料
# https://github.com/oven-sh/bun/blob/277fc558e2039e3ab25ecebecc5a3f04c5c3199a/dockerhub/debian-slim/Dockerfile
# COPY --chown=usr_vscode:usr_vscode --from=oven/bun:1-debian /usr/local/bin/bun /usr/local/bin
# IS_BUN_AUTO_UPDATE=true SHELL=zsh bun completions
# bun install -g 将会安装到 ENV BUN_INSTALL_BIN
# ENV PATH "${BUN_INSTALL_BIN}:${PATH}"
# RUN sudo mkdir -p /usr/local/bun-node-fallback-bin && sudo ln -s /usr/local/bin/bun /usr/local/bun-node-fallback-bin/node
# ENV PATH "${PATH}:/usr/local/bun-node-fallback-bin"
# <<<<<
# fix permission
# 有可能这个目录是 volume 挂载过来的,权限会有问题。
sudo mkdir -p ~/.bun || true
sudo chown -R $(whoami):$(whoami) ~/.bun || true
curl -fsSL https://bun.com/install | bash
# https://bun.sh/docs/runtime/nodejs-compat
mkdir -p ~/.bun/bin/bun-node-fallback-bin || true
ln -sf ~/.bun/bin/bun ~/.bun/bin/bun-node-fallback-bin/node
which -a bun
bun --version
which -a bunx
bunx --version
which -a node
# >>>>> pnpm
bun add -g pnpm@latest
# echo "alias pnpm='bunx pnpm'" >> ~/.zshrc
# echo "alias pnpx='bunx pnpx'" >> ~/.zshrc
bunx pnpm config set store-dir ~/.pnpm-store
sudo chown -R $(whoami):$(whoami) ~/.pnpm-store || true
# >>>>> npm
bun add -g npm@latest
# >>>>> Claude Code 工具
bun add -g @anthropic-ai/claude-code@latest
echo "alias claude='bunx claude --dangerously-skip-permissions'" >> ~/.zshrc
# 参考: https://github.com/anthropics/claude-code/blob/1fe9e369a7c30805189cbbb72eb69c15ed4ec96b/.devcontainer/Dockerfile#L42
echo "export DEVCONTAINER=true" >> ~/.zshrc
# >>>>>> Gemini CLI 工具
bun add -g @google/gemini-cli@latest
echo "alias gemini='bunx -g gemini --yolo -m gemini-2.5-pro'" >> ~/.zshrc
echo "export SANDBOX=bun-devcontainer" >> ~/.zshrc