更新已安装的npm包 - npm ERR!代码EINVALIDPACKAGENAME

13

我想要全局更新我的Node.js模块。我正在使用以下命令:

sudo npm update -g 

但会在终端产生这些错误。

npm ERR! code EINVALIDPACKAGENAME
npm ERR! Invalid package name ".DS_Store": name cannot start with a period

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/dev/.npm/_logs/2021-04-24T15_59_25_014Z-debug.log

我认为这个命令将扫描文件夹并找到 macOS 的 .DS_Store 文件。

我该如何解决这个问题?


1
这似乎类似于[问题#2835](https://github.com/npm/cli/issues/2835) - RobC
1
@RobC 我已经阅读了它,但是我无法在任何地方找到.DS_Store文件。我也启用了隐藏文件可视化,但仍然没有发现 :( - newbiedev
5个回答

12

我使用这个方法解决了Mac OS Monterey的同样问题

find `npm list -g | head -1` -name '.DS_Store' -type f -delete

这个也适用于使用nvm的情况。谢谢! - undefined

11

对我而言,这样做解决了我的问题:

find /usr/local/lib/node_modules/ -name '.DS_Store' -type f -delete 

它会搜索全局 node_modules 文件夹中的所有 .DS_Store 并将其移除(适用于 Mac)


如果您正在使用 fnm 作为您的 Node 版本管理器和 Multishells,请尝试以下操作: find ${FNM_MULTISHELL_PATH}/lib/node_modules/ -name '.DS_Store' -type f -delete - uloco

1
你可以尝试这个,
sudo npm install --global npm

我认为这对你会有效果。

1

1. 解决方案

对于Windows用户

删除名称不正确的文件夹。

我把它放在这个地址:

C:\Program Files\nodejs\node_modules

根据Laertes Moustakas(在我回答时,他的GitHub评论有9个赞),名称不正确的文件夹可能位于不同的地址
C:\Users\<username>\AppData\Roaming\npm\node_modules

2. 我的例子

我遇到了错误:

D:\SashaDebugging>npm update -g
npm ERR! code EINVALIDPACKAGENAME
npm ERR! Invalid package name ".corepack-yRBjKBW1" of package ".corepack-yRBjKBW1@*": name cannot start with a period.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\SashaChernykh\AppData\Local\npm-cache\_logs\2023-02-04T06_33_17_981Z-debug-0.log

我删除了这个文件夹:
C:\Program Files\nodejs\node_modules\.corepack-yRBjKBW1

现在我可以成功更新我的npm包:
D:\SashaDebugging>npm update -g

added 180 packages, removed 236 packages, and changed 2338 packages in 36m

369 packages are looking for funding
  run `npm fund` for details

3. 我的环境
  1. Microsoft Windows [版本 10.0.19041.1415]
  2. Node.js 19.6.0
  3. npm 9.4.1
4. 免责声明

本答案适用于2023年2月。未来,其数据可能已过时。

此解决方案在不同的环境中可能无法正常工作。


0

对于Windows,有一个替代方案

我在使用mime-type;s包时遇到了错误。

npm ERR! code EINVALIDPACKAGENAME
npm ERR! Invalid package name "mime-type;s" of package "mime-type;s@~2.1.34": name can only contain URL-friendly characters.

我通过删除项目package-lock.json文件中带有模块名mime-type;s的行来解决了这个问题,因为我在C:\Users\<username>\AppData\Roaming\npm\node_modulesC:\Program Files\nodejs\node_modules\.目录中都找不到mime-type;s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接