nvm-desktop icon indicating copy to clipboard operation
nvm-desktop copied to clipboard

[BUG]npm link 报错

Open Alan-Bai opened this issue 10 months ago • 13 comments

本地撰写了一个二次封装的组件库,使用npm link时,控制台报错:

工具版本是:4.0.7

Alan-Bai avatar Feb 24 '25 08:02 Alan-Bai

能贴出具体的错误吗 比如终端的截图

1111mp avatar Feb 24 '25 08:02 1111mp

能贴出具体的错误吗 比如终端的截图

Image

估计是工具版本升级导致的 ,今天可以创建连接了,不过在使用处使用时报错

Image

Alan-Bai avatar Feb 25 '25 02:02 Alan-Bai

能贴出具体的错误吗 比如终端的截图

Image

估计是工具版本升级导致的 ,今天可以创建连接了,不过在使用处使用时报错

Image

查看npm错误日志,提示信息如下: 0 verbose cli D:\apps\nodeVersions\20.11.1\node.exe D:\apps\nodeVersions\20.11.1\node_modules\npm\bin\npm-cli.js 1 info using [email protected] 2 info using [email protected] 3 timing npm:load:whichnode Completed in 2ms 4 timing config:load:defaults Completed in 1ms 5 timing config:load:file:D:\apps\nodeVersions\20.11.1\node_modules\npm\npmrc Completed in 2ms 6 timing config:load:builtin Completed in 2ms 7 timing config:load:cli Completed in 1ms 8 timing config:load:env Completed in 1ms 9 timing config:load:file:D:\programFiles\npm\npm-cache_cacache\tmp\git-cloneX152uy.npmrc Completed in 0ms 10 timing config:load:project Completed in 2ms 11 timing config:load:file:C:\Users\alan.npmrc Completed in 1ms 12 timing config:load:user Completed in 1ms 13 timing config:load:file:D:\programFiles\npm\npm_global\etc\npmrc Completed in 0ms 14 timing config:load:global Completed in 1ms 15 timing config:load:setEnvs Completed in 0ms 16 timing config:load Completed in 9ms 17 timing npm:load:configload Completed in 9ms 18 timing config:load:flatten Completed in 2ms 19 timing npm:load:mkdirpcache Completed in 1ms 20 timing npm:load:mkdirplogs Completed in 1ms 21 verbose title npm run gentypes 22 verbose argv "run" "gentypes" 23 timing npm:load:setTitle Completed in 1ms 24 timing npm:load:display Completed in 0ms 25 verbose logfile logs-max:10 dir:D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z- 26 verbose logfile D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z-debug-0.log 27 timing npm:load:logFile Completed in 8ms 28 timing npm:load:timers Completed in 0ms 29 timing npm:load:configScope Completed in 0ms 30 timing npm:load Completed in 52ms 31 silly logfile start cleaning logs, removing 3 files 32 silly logfile error removing log file D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log [Error: EPERM: operation not permitted, lstat 'D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log'] { 32 silly logfile errno: -4048, 32 silly logfile code: 'EPERM', 32 silly logfile syscall: 'lstat', 32 silly logfile path: 'D:\programFiles\npm\npm-cache\_logs\2025-02-25T02_11_46_829Z-debug-0.log' 32 silly logfile } 33 silly logfile done cleaning log files 34 timing command:run Completed in 2421ms 35 verbose exit 0 36 timing npm Completed in 2550ms 37 info ok

Alan-Bai avatar Feb 25 '25 02:02 Alan-Bai

能进一步提供 link 的这个包的package.json 文件内容吗 主要是(name 和 bin 两个属性)

在包的目录下执行 npm link 成功之后 如果配置了 bin 属性 会在 %HOMEPATH%\.nvmd\bin 目录下多出一个包名的exe文件 %HOMEPATH%\.nvmd\packages.json文件中也会记录 你可以检查一下呢

你这个包是开源的吗 方便给一份代码我本地测试一下吗 或者只需要package.json文件也可以

1111mp avatar Feb 25 '25 03:02 1111mp

我本地测试了一下 npm link命令没遇到问题

Image

当然也有一些边界情况没测试到 所以需要你这边提供一些额外的信息来定位问题

1111mp avatar Feb 25 '25 04:02 1111mp

我本地测试了一下 npm link命令没遇到问题

Image

当然也有一些边界情况没测试到 所以需要你这边提供一些额外的信息来定位问题

谢谢你的回复

  • 包的名字是xzl-proxy-antd

Alan-Bai avatar Feb 25 '25 10:02 Alan-Bai

能贴出具体的错误吗 比如终端的截图

Image 估计是工具版本升级导致的 ,今天可以创建连接了,不过在使用处使用时报错 Image

查看npm错误日志,提示信息如下: 0 verbose cli D:\apps\nodeVersions\20.11.1\node.exe D:\apps\nodeVersions\20.11.1\node_modules\npm\bin\npm-cli.js 1 info using [email protected] 2 info using [email protected] 3 timing npm:load:whichnode Completed in 2ms 4 timing config:load:defaults Completed in 1ms 5 timing config:load:file:D:\apps\nodeVersions\20.11.1\node_modules\npm\npmrc Completed in 2ms 6 timing config:load:builtin Completed in 2ms 7 timing config:load:cli Completed in 1ms 8 timing config:load:env Completed in 1ms 9 timing config:load:file:D:\programFiles\npm\npm-cache_cacache\tmp\git-cloneX152uy.npmrc Completed in 0ms 10 timing config:load:project Completed in 2ms 11 timing config:load:file:C:\Users\alan.npmrc Completed in 1ms 12 timing config:load:user Completed in 1ms 13 timing config:load:file:D:\programFiles\npm\npm_global\etc\npmrc Completed in 0ms 14 timing config:load:global Completed in 1ms 15 timing config:load:setEnvs Completed in 0ms 16 timing config:load Completed in 9ms 17 timing npm:load:configload Completed in 9ms 18 timing config:load:flatten Completed in 2ms 19 timing npm:load:mkdirpcache Completed in 1ms 20 timing npm:load:mkdirplogs Completed in 1ms 21 verbose title npm run gentypes 22 verbose argv "run" "gentypes" 23 timing npm:load:setTitle Completed in 1ms 24 timing npm:load:display Completed in 0ms 25 verbose logfile logs-max:10 dir:D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z- 26 verbose logfile D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z-debug-0.log 27 timing npm:load:logFile Completed in 8ms 28 timing npm:load:timers Completed in 0ms 29 timing npm:load:configScope Completed in 0ms 30 timing npm:load Completed in 52ms 31 silly logfile start cleaning logs, removing 3 files 32 silly logfile error removing log file D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log [Error: EPERM: operation not permitted, lstat 'D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log'] { 32 silly logfile errno: -4048, 32 silly logfile code: 'EPERM', 32 silly logfile syscall: 'lstat', 32 silly logfile path: 'D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log' 32 silly logfile } 33 silly logfile done cleaning log files 34 timing command:run Completed in 2421ms 35 verbose exit 0 36 timing npm Completed in 2550ms 37 info ok

是不是 npm link 的时候包名不对

1111mp avatar Feb 26 '25 01:02 1111mp

能贴出具体的错误吗 比如终端的截图

Image 估计是工具版本升级导致的 ,今天可以创建连接了,不过在使用处使用时报错 Image

查看npm错误日志,提示信息如下: 0 verbose cli D:\apps\nodeVersions\20.11.1\node.exe D:\apps\nodeVersions\20.11.1\node_modules\npm\bin\npm-cli.js 1 info using [email protected] 2 info using [email protected] 3 timing npm:load:whichnode Completed in 2ms 4 timing config:load:defaults Completed in 1ms 5 timing config:load:file:D:\apps\nodeVersions\20.11.1\node_modules\npm\npmrc Completed in 2ms 6 timing config:load:builtin Completed in 2ms 7 timing config:load:cli Completed in 1ms 8 timing config:load:env Completed in 1ms 9 timing config:load:file:D:\programFiles\npm\npm-cache_cacache\tmp\git-cloneX152uy.npmrc Completed in 0ms 10 timing config:load:project Completed in 2ms 11 timing config:load:file:C:\Users\alan.npmrc Completed in 1ms 12 timing config:load:user Completed in 1ms 13 timing config:load:file:D:\programFiles\npm\npm_global\etc\npmrc Completed in 0ms 14 timing config:load:global Completed in 1ms 15 timing config:load:setEnvs Completed in 0ms 16 timing config:load Completed in 9ms 17 timing npm:load:configload Completed in 9ms 18 timing config:load:flatten Completed in 2ms 19 timing npm:load:mkdirpcache Completed in 1ms 20 timing npm:load:mkdirplogs Completed in 1ms 21 verbose title npm run gentypes 22 verbose argv "run" "gentypes" 23 timing npm:load:setTitle Completed in 1ms 24 timing npm:load:display Completed in 0ms 25 verbose logfile logs-max:10 dir:D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z- 26 verbose logfile D:\programFiles\npm\npm-cache_logs\2025-02-25T02_12_29_606Z-debug-0.log 27 timing npm:load:logFile Completed in 8ms 28 timing npm:load:timers Completed in 0ms 29 timing npm:load:configScope Completed in 0ms 30 timing npm:load Completed in 52ms 31 silly logfile start cleaning logs, removing 3 files 32 silly logfile error removing log file D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log [Error: EPERM: operation not permitted, lstat 'D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log'] { 32 silly logfile errno: -4048, 32 silly logfile code: 'EPERM', 32 silly logfile syscall: 'lstat', 32 silly logfile path: 'D:\programFiles\npm\npm-cache_logs\2025-02-25T02_11_46_829Z-debug-0.log' 32 silly logfile } 33 silly logfile done cleaning log files 34 timing command:run Completed in 2421ms 35 verbose exit 0 36 timing npm Completed in 2550ms 37 info ok

是不是 npm link 的时候包名不对

使用的包名是正确的,工程目录名和发包的名称不完全一致。在发包的目录下 npm link 后在npm的全局prefix目录下成功创建了软连接,在使用的地方npm link xxx 控制台报错

Alan-Bai avatar Feb 26 '25 02:02 Alan-Bai

我昨天试了使用 xzl-proxy-antd 这个包名来测试npm的link 也是没有复现你说的这个问题,你目前使用的nvmd的版本是多少(nvmd --version,目前最新的是 4.0.7 版本

1111mp avatar Feb 26 '25 02:02 1111mp

我昨天试了使用 xzl-proxy-antd 这个包名来测试npm的link 也是没有复现你说的这个问题,你目前使用的nvmd的版本是多少(nvmd --version,目前最新的是 4.0.7 版本

使用的最新的 4.0.7 版本。如果你测试过没有问题的话,大概率是我这边的环境问题了

Alan-Bai avatar Feb 26 '25 03:02 Alan-Bai

我昨天试了使用 xzl-proxy-antd 这个包名来测试npm的link 也是没有复现你说的这个问题,你目前使用的nvmd的版本是多少(nvmd --version,目前最新的是 4.0.7 版本

使用的最新的 4.0.7 版本。如果你测试过没有问题的话,大概率是我这边的环境问题了

在同事的电脑上面测试了一下 还是有这个问题 使用pnpm的话是没有问题的

Alan-Bai avatar Feb 26 '25 03:02 Alan-Bai

npm link your-package --verbose 命令最后加上--verbose 查看一下完整的日志呢

nvmd 其实不会影响 npm 的默认行为的,只是会在配置了 bin 属性之后添加对应的垫片,然后这样就可以使用全局命令了。而且这个报错也不是nvmd的报错,如果nvmd的报错的话,报错信息会有前缀:nvm-desktop:

感觉是你的包版本冲突了吧 你可以尝试一下

  • 清一下 npm 的缓存
  • 删除 node_modules 和 package-lock.json 文件

实在不行,可以单独下载一个node,不使用nvm-desktop,看这个问题是不是还会复现

1111mp avatar Feb 26 '25 04:02 1111mp

我昨天试了使用 xzl-proxy-antd 这个包名来测试npm的link 也是没有复现你说的这个问题,你目前使用的nvmd的版本是多少(nvmd --version,目前最新的是 4.0.7 版本

使用的最新的 4.0.7 版本。如果你测试过没有问题的话,大概率是我这边的环境问题了

在同事的电脑上面测试了一下 还是有这个问题 使用pnpm的话是没有问题的

Alan-Bai avatar Feb 26 '25 11:02 Alan-Bai