50

我正在尝试发布我的 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

有什么线索吗?

4

7 回答 7

86

傻我。答案一直在文档

为了发布你需要从你的 NPM cli 登录。

因此,npm login如果您已经在npmjs.com上拥有用户,或者npm adduser创建一个用户,则可以这样做。

但是,我会感谢提供更多信息的错误消息。

于 2017-09-07T07:11:17.690 回答
2

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

问题的根源很简单,就是文件夹和文件的访问权限。点击这里

于 2018-12-08T17:05:14.350 回答
1

这是我的经验。

我正在研究 Atom,并在 Atom 上进行了文件拖放,这会导致错误。所以我在 Win10 上退出 atom 并npm i再次运行。它是成功的。

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

于 2019-03-27T16:52:23.230 回答
0

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

于 2019-07-03T13:20:58.580 回答
0

仍在苦苦挣扎的人,如果您初始化了诸如 publishConfig 之类的东西,请检查您的 package.json 文件。
删除这是为我解决的问题

于 2021-02-21T11:00:58.500 回答
0

在某些情况下,这是指向正确package.json文件的问题。之前省略了参数,导致错误。

前:npm publish

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

于 2019-10-23T19:49:03.097 回答
0

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

于 2021-11-25T11:49:09.717 回答