使用NVM-Windows、节点v17、NPM v8安装npm时出现未知错误“npm ERR!意外的标记'.'”

7y4bm7vi  于 2022-11-14  发布在  Windows
关注(0)|答案(6)|浏览(426)

这似乎是一个半常见的错误,但我不清楚是什么原因导致了这个错误。我想知道是什么原因导致了这个错误,以及如何解决这个错误。
使用NVM我已经安装了Node @latest(版本17.4.0),它已经安装了npm的匹配最新(v8.3.1)。

PS C:\myRepo> node -v
v17.4.0
PS C:\myRepo> npm -v
8.3.1
PS C:\myRepo> nvm list

  * 17.4.0 (Currently using 64-bit executable)
    17.0.0
    15.6.0
    14.18.3
    14.15.4
    12.20.1

然后我从npm安装一个包依赖项,不管包名是什么,它都给我一个错误:

PS C:\myRepo> npm install -g npm
npm ERR! Unexpected token '.'

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\yodama\AppData\Local\npm-cache\_logs\2022-01-25T16_38_44_607Z-debug-0.log

我们可以看到完整的调试日志:

0 verbose cli [
0 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
0 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli   'install',
0 verbose cli   '-g',
0 verbose cli   'npm'
0 verbose cli ]
1 info using npm@8.3.1
2 info using node@v17.4.0
3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 1ms
5 timing config:load:file:C:\Users\yodama\AppData\Roaming\nvm\v17.4.0\node_modules\npm\npmrc Completed in 3ms
6 timing config:load:builtin Completed in 3ms
7 timing config:load:cli Completed in 3ms
8 timing config:load:env Completed in 0ms
9 timing config:load:project Completed in 3ms
10 timing config:load:file:C:\Users\yodama\.npmrc Completed in 4ms
11 timing config:load:user Completed in 4ms
12 timing config:load:file:C:\Program Files\nodejs\etc\npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:validate Completed in 0ms
15 timing config:load:credentials Completed in 1ms
16 timing config:load:setEnvs Completed in 1ms
17 timing config:load Completed in 19ms
18 timing npm:load:configload Completed in 20ms
19 timing npm:load:setTitle Completed in 1ms
20 timing config:load:flatten Completed in 4ms
21 timing npm:load:display Completed in 7ms
22 verbose logfile C:\Users\yodama\AppData\Local\npm-cache\_logs\2022-01-25T16_38_44_607Z-debug-0.log
23 timing npm:load:logFile Completed in 13ms
24 timing npm:load:timers Completed in 0ms
25 timing npm:load:configScope Completed in 0ms
26 timing npm:load Completed in 42ms
27 verbose stack C:\Users\yodama\AppData\Roaming\nvm\v17.4.0\node_modules\npm\node_modules\libnpmfund:1
27 verbose stack ../workspaces/libnpmfund
27 verbose stack ^
27 verbose stack
27 verbose stack SyntaxError: Unexpected token '.'
27 verbose stack     at Object.compileFunction (node:vm:352:18)
27 verbose stack     at wrapSafe (node:internal/modules/cjs/loader:1026:15)
27 verbose stack     at Module._compile (node:internal/modules/cjs/loader:1061:27)
27 verbose stack     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1149:10)
27 verbose stack     at Module.load (node:internal/modules/cjs/loader:975:32)
27 verbose stack     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
27 verbose stack     at Module.require (node:internal/modules/cjs/loader:999:19)
27 verbose stack     at require (node:internal/modules/cjs/helpers:102:18)
27 verbose stack     at Object.<anonymous> (C:\Users\yodama\AppData\Roaming\nvm\v17.4.0\node_modules\npm\lib\utils\reify-output.js:16:38)
27 verbose stack     at Module._compile (node:internal/modules/cjs/loader:1097:14)
28 verbose cwd C:\myRepo
29 verbose Windows_NT 10.0.22000
30 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "npm"
31 verbose node v17.4.0
32 verbose npm  v8.3.1
33 error Unexpected token '.'
34 verbose exit 1
35 timing npm Completed in 262ms
36 verbose code 1

使用nvm for windows切换到节点14解决了此问题:

PS C:\myRepo> nvm use 14.18.3
Now using node v14.18.3 (64-bit)
PS C:\myRepo> node -v 
v14.18.3
PS C:\myRepo> npm -v
6.14.15
PS C:\myRepo> npm i -g @microsoft/rush
npm WARN deprecated @opentelemetry/types@0.2.0: Package renamed to @opentelemetry/api, see https://github.com/open-telemetry/opentelemetry-js
C:\Program Files\nodejs\rush -> C:\Program Files\nodejs\node_modules\@microsoft\rush\bin\rush
C:\Program Files\nodejs\rushx -> C:\Program Files\nodejs\node_modules\@microsoft\rush\bin\rushx
+ @microsoft/rush@5.61.1
added 286 packages from 296 contributors in 26.69s

这里出了什么问题?这是NVM问题,还是npm 8.x问题?我需要在Node v17中测试特定的bug,因此仅使用旧版本的Node不是可行的解决方案。

nnt7mjpx

nnt7mjpx1#

将NVM-Windows更新为最新版本,目前为1.1.9
他们已经解决了这个问题,工作区文件夹必须是符号链接。
问题与NVM-Windows有关,与NPM无关

9rbhqvlz

9rbhqvlz2#

请使用较低版本节点。
nvm list-〉查看已安装的节点版本。
nvm use <-version number->
请再次运行npm install

czfnxgou

czfnxgou3#

下载并安装NVM Windows的更新版本并运行它。然后,下载节点的LTS版本

xxe27gdn

xxe27gdn4#

1.安装NVM的更新版本
1.卸载节点版本
1.重新安装节点
这解决了我的问题

zlwx9yxi

zlwx9yxi5#

只要做:nvm使用[较低的版本],如果你正在使用的节点版本17. 9. 0比只是降级版本,它会工作。

jhiyze9q

jhiyze9q6#

我遇到了同样的问题,我通过将节点版本从16.17.0升级到16.0.0解决了这个问题。
[npm版本-〉7.10.0]

nvm install 16.0.0
nvm use 16.0.0

npm install
  • 你好
    详细堆栈语法错误:意外的标记“.”
    33对象处的详细堆栈。编译函数(节点:vm:360:18)
    33 wrapSafe处的详细堆栈
    (node:内部/模块/cjs/加载程序:1055:15)
    33模块._compile处的详细堆栈
    (node:内部/模块/cjs/加载程序:1090:27)
    33详细堆栈
    在对象.模块._扩展名.. js(节点:内部/模块/cjs/加载程序:1180:10)
    33模块.load处的详细堆栈(节点:内部/模块/cjs/加载程序:1004:32)
    33在函数.模块._load处的详细堆栈(节点:内部/模块/cjs/加载程序:839:12)
    33模块处的详细堆栈。需要(节点:内部/模块/cjs/加载程序:1028:19)
    需要33个详细堆栈(节点:内部/模块/cjs/帮助程序:102:18)
    33在对象处的详细堆栈。(C:\用户\应用程序数据\漫游\nvm\v16.17.0\节点模块\npm\lib\utils\reify-output.js:16:38)
    33模块._compile处的详细堆栈(节点:内部/模块/cjs/加载程序:1126:14)

相关问题