npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048

Posted

技术标签:

【中文标题】npm publish 导致\'错误:EPERM:不允许操作,取消链接...\',errno -4048【英文标题】:npm publish causes 'Error: EPERM: operation not permitted, unlink ...', errno -4048npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048 【发布时间】:2018-02-15 19:39:31 【问题描述】:

我正在尝试发布我的 NPM 包:npm publish

我收到以下非常神秘的错误:

npm ERR! path c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR!     at Error (native)
npm ERR!   Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR!     at Error (native)
npm ERR!   cause:
npm ERR!     Error: EPERM: operation not permitted, unlink 'c:\Temp\npm-20936-b98f84c8\tmp\fromDir-02dd5394\package.tgz'
npm ERR!        at Error (native)
npm ERR!      errno: -4048,
npm ERR!      code: 'EPERM',
npm ERR!      syscall: 'unlink',
npm ERR!      path: 'c:\\Temp\\npm-20936-b98f84c8\\tmp\\fromDir-02dd5394\\package.tgz' ,
npm ERR!   isOperational: true,
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink \'c:\\Temp\\npm-20936-b98f84c8\\tmp\\fromDir-02dd5394\\package.tgz\'\n    at Error (native)',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'c:\\Temp\\npm-20936-b98f84c8\\tmp\\fromDir-02dd5394\\package.tgz' 
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

尝试以管理员身份运行 - 同样的错误。

NPM 版本:5.4.0

节点版本:6.11.1

操作系统:Windows 10

有什么线索吗?

【问题讨论】:

我只想补充一点,如果您使用 Gradle 脚本而不在您的 .gitignore 文件中排除“.gradle”,这个问题也可能出现在 Windows 上。 .或在运行 npm pack/publish 命令时尝试添加任何类型的锁定文件。我只是追了我的尾巴 12 个小时试图弄清楚那个。请参阅此处了解更多信息:nigglingaspirations.blogspot.com/2020/09/…。 【参考方案1】:

我傻了。答案在文档all along。

为了发布,您需要从 NPM cli 登录。

如果您在npmjs.com 上已有用户,请使用npm login,或者使用npm adduser 创建用户。

不过,我希望能提供更多信息丰富的错误消息。

【讨论】:

天哪!它对我有用。我在我的主计算机上登录了很长时间......但是出现了这个错误,因为我已经更改了密码,所以......谢谢!再次登录成功! 多么可怕的错误信息!我们设法通过在 .npmrc 文件中包含私有 npm 存储库详细信息来完成这项工作 我在文档中没有发现这一点,尽管首先要做的事情很明显。 是的,npm login 解决了这个问题。误导性消息信息! 肯定需要更好的错误信息!我只是在一台新电脑上有点挣扎:)【参考方案2】:

我在 Windows 上遇到了同样的问题。

问题的根源很简单,就是文件夹和文件的访问权限。 Click here

【讨论】:

【参考方案3】:

这是我的经验。

我在 Atom 上工作,并在 Atom 上拖放文件,导致错误。 所以我在 Win10 上退出 atom 并再次运行 npm i。成功了。

请关闭可能限制项目文件的编辑器或资源管理器,然后重试。

【讨论】:

【参考方案4】:

我通过重新安装 Windows 驱动器更改为新的文件系统。之后就没有问题了。参考以下link。

【讨论】:

【参考方案5】:

在某些情况下,只需指向正确的package.json 文件即可。之前省略了参数,导致错误。

之前:npm publish

之后:npm publish C:\Code\my-proj\dist\@acme\my-package

【讨论】:

【参考方案6】:

还在苦苦挣扎的人,如果你有类似的东西,请检查你的 package.json 文件 publishConfig 已初始化。 删除这是为我解决的问题

【讨论】:

【参考方案7】:

在我的情况下,问题是参数不正确npm publish --opt=123456(typo opt => otp ...一次性密码 - 2factor)。如果参数错误,这个误导性权限错误The operation was rejected by your operating system. 太可怕了。

【讨论】:

以上是关于npm publish 导致'错误:EPERM:不允许操作,取消链接...',errno -4048的主要内容,如果未能解决你的问题,请参考以下文章

Npm 安装错误 EPERM 操作不允许

npm install 给出错误:EPERM,取消链接

npm - EPERM:Linux 上不允许操作

npm 错误! Windows 10 上的代码 EPERM 和 errno -4048

EPERM,不允许操作错误,配置存储

npm - EPERM:在 Windows 上不允许操作