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?

1
  • 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: nigglingaspirations.blogspot.com/2020/09/….
    – cjones26
    Commented Sep 30, 2020 at 3:48

7 Answers 7

87

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.

12
  • 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
    Commented Jun 15, 2018 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
    Commented Nov 22, 2018 at 16:46
  • I didn't find that in the docs, though it is something kind of obvious to do first. Commented Feb 7, 2019 at 18:15
  • Yes, npm login solved this problem. Misleading message information!
    – duckegg
    Commented Feb 8, 2019 at 14:44
  • definitely a better error message is needed! I just struggled a bit with this on a new PC :) Commented Apr 6, 2019 at 15:37
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

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.

0

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

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

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.

Not the answer you're looking for? Browse other questions tagged or ask your own question.