这似乎是一个半常见的错误,但我不清楚是什么原因导致了这个错误。我想知道是什么原因导致了这个错误,以及如何解决这个错误。
使用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不是可行的解决方案。
6条答案
按热度按时间nnt7mjpx1#
将NVM-Windows更新为最新版本,目前为
1.1.9
他们已经解决了这个问题,工作区文件夹必须是符号链接。
问题与NVM-Windows有关,与NPM无关
9rbhqvlz2#
请使用较低版本节点。
nvm list
-〉查看已安装的节点版本。nvm use <-version number->
个请再次运行
npm install
。czfnxgou3#
下载并安装NVM Windows的更新版本并运行它。然后,下载节点的LTS版本
xxe27gdn4#
1.安装NVM的更新版本
1.卸载节点版本
1.重新安装节点
这解决了我的问题
zlwx9yxi5#
只要做:nvm使用[较低的版本],如果你正在使用的节点版本17. 9. 0比只是降级版本,它会工作。
jhiyze9q6#
我遇到了同样的问题,我通过将节点版本从16.17.0升级到16.0.0解决了这个问题。
[npm版本-〉7.10.0]
详细堆栈语法错误:意外的标记“.”
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)