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的主要内容,如果未能解决你的问题,请参考以下文章