NVE
Chạy bất kỳ lệnh nào trên các phiên bản Node.js cụ thể.
Khác với nvm exec:
- có thể chạy nhiều phiên bản Node.js cùng một lúc
- có thể chạy programmatically
- nhanh hơn nhiều
- không cần bước cài đặt riêng biệt cho từng phiên bản Node
- có thể chạy tự động phiên bản minor/patch mới nhất của phiên bản chính
- hoạt động trên Windows. Không cần chạy dưới quyền quản trị viên.
- không yêu cầu Bash
- được cài đặt như một module Node (khác với Bash installation script được tải với
curl
)
nve
thực thi một tệp hoặc lệnh duy nhất. Nó không thay đổi các tệp nhị phân toàn cục node
hoặc npm
. Để chạy một phiên bản Node.js cụ thể cho một dự án hoặc phiên làm việc , vui lòng sử dụng nvm, nvm-windows, n hoặc nvs thay vì.
Ví dụ
# Same as `node` but with Node 12
$ nve 12 node
Welcome to Node.js v12.22.12.
Type ".help" for more information.
> .exit
# Same as `node file.js` but with Node 8
$ nve 8 node file.js
# Any command can be used
$ nve 12 npm test
# Execute a local binary
$ nve 8 ava
# Run a specific version
$ nve 8.10.0 npm test
# Use a version range
$ nve "<8" npm test
# Run the latest Node.js version
$ nve latest npm test
# Run the latest LTS version
$ nve lts npm test
# Run the Node version from `~/.nvmrc` or the current process version
$ nve global npm test
# Run the current directory's Node.js version using its `.nvmrc` or `package.json` (`engines.node` field)
$ nve local npm test
# Run the Node version using a file like `.nvmrc` or `package.json`
$ nve /path/to/.nvmrc npm test
# Use a different mirror for the Node binaries
$ nve --mirror=https://npmmirror.com/mirrors/node 8 npm test
# Do not use the cached list of available Node.js versions
$ nve --fetch 8 npm test
# Always use the cached list of available Node.js versions even if it's more
# than one hour old
$ nve --no-fetch 8 npm test
# Use a different CPU architecture for the Node binaries
$ nve --arch=x32 8 npm test
# Chaining commands
$ nve 8 npm run build && nve 8 npm test
# Cache Node 8 download
$ nve 8 node --version
Ví dụ (nhiều phiên bản)
# Run multiple versions
$ nve 12,10,8 npm test
⬢ Node 12.22.12
105 tests passed
Finished 'test' after 3.8 s
⬢ Node 10.24.1
105 tests passed
Finished 'test' after 4.2 s
⬢ Node 8.17.0
105 tests passed
Finished 'test' after 4.5 s
# Do not abort on the first version that fails
$ nve --continue 12,10,8 npm test
# Run all versions in parallel
$ nve --parallel 12,10,8 npm test
# Cache multiple Node downloads
$ nve 12,10,8 node --version
Ví dụ (liệt kê phiên bản)
# Prints latest Node.js version
$ nve latest
20.4.0
# Prints latest Node.js 8 version
$ nve 8
8.17.0
# Prints latest Node.js 12, 10 and 8 versions
$ nve 12,10,8
12.22.12
10.24.1
8.17.0
Demo
Bạn có thể thử thư viện này:
- hoặc trực tiếp in your browser.
- hoặc bằng cách thực thi các tệp
examples
trong dòng lệnh.
Cài đặt
npm install -g nve
node >=16.17.0
phải được cài đặt toàn cầu. Tuy nhiên, lệnh chạy bởi nve
có thể sử dụng bất kỳ phiên bản Node nào (miễn là tương thích với nó).
Để sử dụng điều này một cách tự động (từ Node.js) thay vì, vui lòng kiểm tra nvexeca.
Sử dụng
nve [OPTIONS...] VERSION,... [COMMAND] [ARGS...]
Điều này hoàn toàn giống với:
COMMAND [ARGS...]
Nhưng sử dụng phiên bản Node cụ thể VERSION
. Có thể chỉ định nhiều phiên bản VERSION
cách nhau bằng dấu phẩy.
VERSION
có thể là:
- bất kỳ version range nào như
12
,12.6.0
hoặc<12
latest
: Phiên bản Node mới nhất có sẵnlts
: Phiên bản LTS Node mới nhấtglobal
: Phiên bản Node toàn cầu- Sử dụng thư mục gốc .nvmrc hoặc package.json (engines.node field)
- Cũng tìm kiếm trong các công cụ quản lý phiên bản Node.js khác được sử dụng
- Nếu không tìm thấy, mặc định là phiên bản Node hiện tại của quy trình hiện tại
local
: Phiên bản Node của thư mục hiện tại- Sử dụng thư mục hiện tại hoặc các thư mục cha .nvmrc, package.json (engines.node field) hoặc similar files
- Mặc định là phiên bản
global
- một đường dẫn tệp đến một .nvmrc, package.json (engines.node field) hoặc similar files
COMMAND
phải tương thích với phiên bản Node cụ thể. Ví dụ: npm
là only compatible with Node >=6.
Cả hai phiên bản toàn cầu và phiên bản cục bộ có thể được thực thi.
Tùy chọn
–continue
Bí danh : -c
Loại : boolean
Mặc định : false
Mặc định, khi chạy nhiều phiên bản Node và một trong số các phiên bản này thất bại, các phiên bản khác sẽ bị hủy bỏ. Tùy chọn này tắt chế độ này.
–parallel
Bí danh : -p
Loại : boolean
Mặc định : false
Khi chạy nhiều phiên bản Node, chạy tất cả chúng cùng một lúc. Điều này nhanh hơn. Tuy nhiên, điều này không hoạt động nếu lệnh:
- yêu cầu một số đầu vào dòng lệnh tương tác (ví dụ: sử dụng lệnh nhắc)
- không an toàn khi chạy đồng thời
–progress
Loại : boolean
Mặc định : true
Có nên hiển thị thanh tiến trình trong khi phiên bản Node đang được tải về.
–mirror
Bí danh : -m
Loại : string
Mặc định : https://nodejs.org/dist
Địa chỉ URL cơ sở để tải về các phiên bản Node. Có thể ghi đè (ví dụ: https://npmmirror.com/mirrors/node
).
Các biến môi trường sau cũng có thể được sử dụng: NODE_MIRROR
, NVM_NODEJS_ORG_MIRROR
, N_NODE_MIRROR
hoặc NODIST_NODE_MIRROR
.
–fetch
Cảm ơn bạn!
Bí danh : -f
Loại : boolean
Mặc định : undefined
Danh sách các phiên bản Node.js có sẵn được lưu vào bộ nhớ cache trong một giờ mặc định. Với:
--fetch
: cache sẽ không được sử dụng--no-fetch
: cache sẽ được sử dụng ngay cả khi nó cũ hơn một giờ
Giá trị mặc định là undefined
(không phải là cả hai trường hợp trên). Khi không có COMMAND
nào được chỉ định (chỉ in phiên bản Node.js), giá trị mặc định là --fetch
thay vào đó.
–arch
Bí danh : -a
Loại : string
Mặc định : process.arch
Kiến trúc CPU của tệp nhị phân Node.js. Điều này hữu ích khi bạn đang sử dụng x64 nhưng muốn chạy Node.js x32.
Tất cả các giá trị từ process.arch đều được cho phép, trừ mips
và mipsel
.
Tải xuống ban đầu
Lần đầu tiên nve
được chạy với một VERSION
mới, tệp nhị phân Node được tải xuống ngầm. Điều này ban đầu mất vài giây. Tuy nhiên, các lần chạy sau đó gần như ngay lập tức.
COMMAND
có thể được bỏ qua để lưu vào cache tải xuống ban đầu đó mà không thực hiện bất kỳ lệnh nào.
Khác biệt với nvm
nve
được thiết kế cho việc thực hiện lệnh cụ thể một lần. Ví dụ bao gồm:
- chạy các bài kiểm tra với phiên bản Node.js cũ hơn
- kiểm tra xem phiên bản Node.js cũ hơn có hỗ trợ cú pháp hoặc tính năng cụ thể không
- đo hiệu năng của các phiên bản Node.js khác nhau
- programmatic usage or child processes
Các công cụ như nvm, nvm-windows, n hoặc nvs được thiết kế để thực hiện một phiên bản Node.js cụ thể cho toàn bộ máy tính, dự án hoặc phiên làm việc.
nve
có thể (và có lẽ nên) được sử dụng cùng với các công cụ này.
Các module native
Nếu mã của bạn sử dụng các module native, nve
hoạt động miễn là:
Cảm ơn bạn!
* Chúng được xây dựng với N-API
* Phiên bản Node.js mục tiêu là >=8.12.0
(vì N-API chưa khả dụng hoặc ổn định trước đó)
Nếu không, thông báo lỗi sau sẽ hiển thị: Lỗi: Mô-đun đã được biên dịch với phiên bản Node.js khác
.
Bảng so sánh
Các bảng so sánh sau đây so sánh thời gian trung bình để chạy nve
, nvm exec và npx node:
nve: 261ms
nvm exec: 619ms
npx node: 994ms
Xem thêm
- nvexeca: Giống như
nve
nhưng có thể sử dụng chương trình (từ Node.js) - execa: Thực hiện quá trình thực thi cho con người
- get-node: Tải xuống Node.js
- preferred-node-version: Lấy phiên bản Node.js ưa thích của dự án hoặc người dùng
- node-version-alias: Giải quyết định danh phiên bản Node.js như
latest
,lts
hoặcerbium
- normalize-node-version: Chuẩn hóa và xác minh phiên bản Node.js
- all-node-versions: Liệt kê tất cả phiên bản Node.js có sẵn
- fetch-node-website: Tìm các phiên bản trên nodejs.org
- global-cache-dir: Lấy thư mục cache toàn cầu
Hỗ trợ
Đối với bất kỳ câu hỏi nào, đừng ngần ngại gửi yêu cầu trên GitHub.
Mọi người đều được chào đón, bất kể nguồn gốc cá nhân. Chúng tôi tuân thủ Mã đạo đức để thúc đẩy môi trường tích cực và bao hàm.
Đóng góp
Dự án này đã được tạo ra với ❤️. Cách đơn giản nhất để đóng góp là đánh dấu và chia sẻ nó trực tuyến.
Nếu tài liệu không rõ ràng hoặc có lỗi chính tả, vui lòng nhấp vào nút Chỉnh sửa
(biểu tượng bút) trên trang và đề xuất sửa lỗi.
Nếu bạn muốn giúp chúng tôi sửa lỗi hoặc thêm tính năng mới, vui lòng kiểm tra hướng dẫn của chúng tôi. Yêu cầu kéo là hoan nghênh!
Thông tin tải xuống:
Tác giả: ehmicky
Mã nguồn: https://github.com/ehmicky/nve
Giấy phép: Apache-2.0 license