50

I'm trying to publish my NPM package: npm publish.

I get the following quite cryptic error:

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.

Tried running as admin - same error.

NPM version: 5.4.0

Node version: 6.11.1

OS: Windows 10

Any leads?

Vaiden
  • 15,728
  • 7
  • 61
  • 91
  • I just want to add that this issue can also crop up on Windows if you're utilizing a Gradle script *without* excluding ".gradle" within your .gitignore file...or attempting to add any sort of lock file when running the npm pack/publish command. I just chased my tail for 12 hours trying to figure that one out. See here for more info: https://nigglingaspirations.blogspot.com/2020/09/the-npm-pack-command-works-fine.html. – cjones26 Sep 30 '20 at 03:48

7 Answers7

86

Silly me. The answer was in the docs all along.

In order to publish you need to be logged in from your NPM cli.

So either do npm login if you already have a user on npmjs.com, or npm adduser to create one.

I would, however, appreciate a more informative error message.

Vaiden
  • 15,728
  • 7
  • 61
  • 91
  • 1
    Oh GOD! It worked on my side. I was logged in long time on my main computer... But got this error, because I've changed the password, so.. Thanks! Logging in again worked! – Radi Cho Jun 15 '18 at 15:46
  • 2
    What a terrible error message! We managed to get this working by including out private npm repo details a the .npmrc file – Dai Bok Nov 22 '18 at 16:46
  • I didn't find that in the docs, though it is something kind of obvious to do first. – Kat Lim Ruiz Feb 07 '19 at 18:15
  • Yes, npm login solved this problem. Misleading message information! – duckegg Feb 08 '19 at 14:44
  • definitely a better error message is needed! I just struggled a bit with this on a new PC :) – Kat Lim Ruiz Apr 06 '19 at 15:37
  • I get this error when trying to publish a scoped package to our organization's repository (VSTS) not to npm. – Jnr Nov 06 '19 at 07:43
  • How is this related to a permission error when attempting to delete a folder? – Amnon Nov 29 '20 at 17:04
  • @Amnon - the correlation is not entirely clear to me as well. A better error log is definitely needed. – Vaiden Nov 30 '20 at 14:20
  • @vaiden the syscall unlink means a deletion of a file or directory is attempted. – Amnon Nov 30 '20 at 14:25
  • @Amnon yeah but I'm not clear on the correlation with the authentication (login) status. – Vaiden Dec 01 '20 at 08:13
  • Neither do I. Moreover, I don't think it is related to login at all. I think something is locking the file or directory. Possibly the IDE or my employer's antivirus. – Amnon Dec 01 '20 at 13:56
  • In most people's case - it is due to the authentication. A login solves it in the majority of cases. – Vaiden Dec 02 '20 at 08:12
2

I had the same problem on Windows.

The source of the problem is simple, it is access permission on folders and files. Click here

Thiago Silva
  • 161
  • 1
  • 3
1

Here is my experience.

I was working on Atom, and did file drag drop on Atom, it cause error. So I exit atom on Win10 and run npm i again. It was successful.

Please turn off your editor or explorer which can restrict your project files and try again.

Zhong Ri
  • 2,556
  • 1
  • 19
  • 23
0

I changed to the new filesystem by remounting my windows drives. After that no problems anymore. Refer to the following link.

tomerpacific
  • 4,704
  • 13
  • 34
  • 52
Lemon
  • 44
  • 4
0

In some cases it is a matter of pointing to the correct package.json file. Had omitted the param in the before, causing the error.

Before: npm publish

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

SushiGuy
  • 1,573
  • 17
  • 20
0

People who are still struggling, check your package.json file if you have something like publishConfig initialized.
Deleting this is what solved for me

0

In my case problem was incorrect param npm publish --opt=123456 (typo opt => otp ... one time password - 2factor). Terrible this misleading permission error The operation was rejected by your operating system. in case of wrong params.

mikep
  • 5,880
  • 2
  • 30
  • 37