Mise: công cụ phát triển, biến môi trường, trình chạy tác vụ
(github.com/jdx)mise là gì?
- mise là công cụ quản lý nhiều công cụ phát triển như node, python, cmake, terraform, tương tự asdf, nvm, pyenv
- Tương tự direnv, công cụ này quản lý biến môi trường theo từng thư mục dự án
- Tương tự make, công cụ này quản lý các tác vụ dùng cho việc build và test dự án
Demo 30 giây
- Trình bày cách dùng mise để cài đặt nhiều phiên bản khác nhau của node
- Khi chạy lệnh
which node, đường dẫn thực tế sẽ được trả về, không phải shim
Bắt đầu nhanh
- Cách cài đặt mise:
$ curl https://mise.run | sh- Có thể kiểm tra phiên bản đã cài bằng lệnh
$ ~/.local/bin/mise --version
- Cài đặt một phiên bản cụ thể:
$ curl https://mise.run | MISE_VERSION=v2024.5.16 sh- Có thể kiểm tra phiên bản đã cài bằng lệnh
$ ~/.local/bin/mise --version
- Kết nối mise với shell:
- 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:
- Cài runtime và thiết lập mặc định toàn cục:
$ mise use --global node@20- Có thể kiểm tra phiên bản bằng lệnh
$ node -v
Tài liệu đầy đủ
- Có thể xem tài liệu đầy đủ tại mise.jdx.dev
1 bình luận
Ý kiến trên Hacker News
Khi bắt đầu dùng mise, tôi khá hài lòng vì nó khắc phục được nhược điểm của asdf, đồng thời cung cấp cấu hình shell nhanh hơn và ít xâm lấn hơn
Tôi đã chuyển sang Mise để quản lý JS, Ruby, Python và Java SDK, và cảm thấy hài lòng
Tôi đang dùng mise để hợp nhất chuỗi công cụ của nhóm và không dùng Docker hay Nix cho việc đó
Khi cố làm mọi thứ, rất dễ dẫn đến việc không làm tốt được thứ gì cả
Vì tôi không phải là lập trình viên nên tôi không hiểu các trường hợp sử dụng của những công cụ này
Tôi dùng mise để quản lý phiên bản Go; hơi khó hiểu và tài liệu chưa đầy đủ, nhưng nhìn chung vẫn ổn
Tôi dùng mise như công cụ thay thế asdf và cảm thấy hài lòng
Đây là một công cụ đơn giản mà tôi đã dùng hơn một năm và nó giúp cuộc sống dễ dàng hơn
Tôi đang suy nghĩ về cách tích hợp mise vào workflow của GitHub Actions
Sau khi đọc README của dự án, tôi vẫn còn câu hỏi: "Tại sao?"