Skip to content

Commit 066fe5f

Browse files
authored
feat(migrate): migrate .nvmrc to .node-version during vp migrate (#1159)
### 🔗 Related Issues <!-- resolves # --> Resolves: #1158 ### 📚 Description Vite+ previously retrieved the Node.js version from .node-version, but projects using nvm typically use .nvmrc. With this change, automatic detection of .nvmrc and a migration feature to .node-version have been added as part of the vp migrate command execution process. During migration, if a v prefix is present at the beginning, it is removed, while aliases such as lts/* are carried over as is. Unit tests have confirmed that it works correctly regardless of the presence of the v prefix. On the other hand, if unsupported aliases like node or stable are included, the system is designed to display a warning and skip the migration rather than failing. ### Manual Test: .nvmrc Migration ```bash $ mkdir /tmp/vp-migrate-test $ echo '{ "name": "test-migrate", "version": "1.0.0" }' > package.json $ echo 'v20.5.0' > .nvmrc ``` #### Command ```bash $ cd /tmp/vp-migrate-test && vp migrate --no-interactive ``` #### Output (Excerpt) ``` .nvmrc detected. Auto-migrating to .node-version... ... • Node version manager file migrated to .node-version ``` #### Final State ``` $ cat /tmp/vp-migrate-test/.node-version 20.5.0 ``` - .nvmrc (v20.5.0) -> Deleted - .node-version -> 20.5.0 (With the v prefix removed)
1 parent 3c2ac72 commit 066fe5f

File tree

17 files changed

+355
-3
lines changed

17 files changed

+355
-3
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
lts/iron
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "migration-nvmrc-lts",
3+
"devDependencies": {
4+
"vite": "^7.0.0"
5+
}
6+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
> vp migrate --no-interactive # migration should detect .nvmrc with lts alias and auto-migrate
2+
VITE+ - The Unified Toolchain for the Web
3+
4+
◇ Migrated . to Vite+<repeat>
5+
• Node <semver> pnpm <semver>
6+
• 2 config updates applied
7+
• Node version manager file migrated to .node-version
8+
9+
> cat .node-version # check lts alias is preserved as-is
10+
lts/iron
11+
12+
> test ! -f .nvmrc # check .nvmrc is removed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"commands": [
3+
"vp migrate --no-interactive # migration should detect .nvmrc with lts alias and auto-migrate",
4+
"cat .node-version # check lts alias is preserved as-is",
5+
"test ! -f .nvmrc # check .nvmrc is removed"
6+
]
7+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
node
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "migration-nvmrc-node-alias",
3+
"devDependencies": {
4+
"vite": "^7.0.0"
5+
}
6+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
> vp migrate --no-interactive # 'node' alias should be mapped to lts/* with an info message
2+
VITE+ - The Unified Toolchain for the Web
3+
4+
5+
"node" in .nvmrc is not a specific version; automatically mapping to "lts/*"
6+
◇ Migrated . to Vite+<repeat>
7+
• Node <semver> pnpm <semver>
8+
• 2 config updates applied
9+
• Node version manager file migrated to .node-version
10+
11+
> cat .node-version # check node alias is mapped to lts/*
12+
lts/*
13+
14+
> test ! -f .nvmrc # check .nvmrc is removed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"commands": [
3+
"vp migrate --no-interactive # 'node' alias should be mapped to lts/* with an info message",
4+
"cat .node-version # check node alias is mapped to lts/*",
5+
"test ! -f .nvmrc # check .nvmrc is removed"
6+
]
7+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v25.8.2
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "migration-nvmrc",
3+
"devDependencies": {
4+
"vite": "^7.0.0"
5+
}
6+
}

0 commit comments

Comments
 (0)