Mise: เครื่องมือพัฒนา, ตัวแปรสภาพแวดล้อม, ตัวรันงาน
(github.com/jdx)mise คืออะไร?
- mise เป็นเครื่องมือสำหรับจัดการเครื่องมือพัฒนาหลากหลายชนิด เช่น node, python, cmake, terraform คล้ายกับ asdf, nvm, pyenv
- จัดการตัวแปรสภาพแวดล้อมแยกตามไดเรกทอรีโปรเจกต์ คล้ายกับ direnv
- จัดการงานที่ใช้สำหรับการบิลด์และการทดสอบโปรเจกต์ คล้ายกับ make
เดโม 30 วินาที
- แสดงวิธีใช้ mise เพื่อติดตั้ง node หลายเวอร์ชัน
- เมื่อรันคำสั่ง
which nodeจะได้พาธจริงกลับมา ซึ่งไม่ใช่ shim
เริ่มต้นอย่างรวดเร็ว
- วิธีติดตั้ง mise:
$ curl https://mise.run | sh- สามารถตรวจสอบเวอร์ชันที่ติดตั้งได้ด้วยคำสั่ง
$ ~/.local/bin/mise --version
- ติดตั้งเวอร์ชันที่ระบุ:
$ curl https://mise.run | MISE_VERSION=v2024.5.16 sh- สามารถตรวจสอบเวอร์ชันที่ติดตั้งได้ด้วยคำสั่ง
$ ~/.local/bin/mise --version
- เชื่อม mise เข้ากับเชลล์:
- bash:
echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc - zsh:
echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc - fish:
echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
- bash:
- ติดตั้งรันไทม์และตั้งค่าเริ่มต้นแบบโกลบอล:
$ mise use --global node@20- สามารถตรวจสอบเวอร์ชันได้ด้วยคำสั่ง
$ node -v
เอกสารทั้งหมด
- ดูเอกสารทั้งหมดได้ที่ mise.jdx.dev
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ตอนเริ่มใช้ mise รู้สึกพอใจเพราะมันแก้จุดอ่อนของ asdf ได้ พร้อมทั้งให้การตั้งค่าเชลล์ที่เร็วกว่าและรบกวนน้อยกว่า
เปลี่ยนมาใช้ Mise เพื่อจัดการ JS, Ruby, Python และ Java SDK แล้ว และพอใจมาก
กำลังใช้ mise เพื่อรวม toolchain ของทีมให้เป็นหนึ่งเดียว และไม่ได้ใช้ Docker หรือ Nix
ถ้าพยายามทำทุกอย่าง ก็มีโอกาสสูงที่จะทำอะไรได้ไม่ดีสักอย่าง
เพราะไม่ได้เป็นนักพัฒนา จึงไม่เข้าใจ use case ของเครื่องมือแบบนี้
ใช้ mise เพื่อจัดการเวอร์ชัน Go อยู่ ซึ่งค่อนข้างสับสนและเอกสารยังไม่เพียงพอ แต่ก็ใช้ได้โอเค
ใช้ mise เป็นเครื่องมือแทน asdf และพอใจมาก
ใช้มานานกว่าหนึ่งปีแล้ว เป็นเครื่องมือง่าย ๆ ที่ทำให้ชีวิตสะดวกขึ้นมาก
กำลังคิดว่าจะรวม mise เข้ากับ GitHub Actions workflow อย่างไรดี
หลังจากอ่าน Readme ของโปรเจกต์แล้ว ก็ยังมีคำถามค้างอยู่ในใจว่า "ทำไม?"