npm publish causes 'Error: EPERM: operation not permitted, unlink ...', errno -4048

21,146

Solution 1

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.

Solution 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

Solution 3

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.

Share:
21,146
Vaiden
Author by

Vaiden

Works @Amdocs. Writes @DevsBeDevin.

Updated on November 26, 2021

Comments

  • Vaiden
    Vaiden over 2 years

    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?

  • Radi Cho
    Radi Cho almost 6 years
    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!
  • Dai Bok
    Dai Bok over 5 years
    What a terrible error message! We managed to get this working by including out private npm repo details a the .npmrc file
  • Kat Lim Ruiz
    Kat Lim Ruiz over 5 years
    I didn't find that in the docs, though it is something kind of obvious to do first.
  • duckegg
    duckegg over 5 years
    Yes, npm login solved this problem. Misleading message information!
  • Kat Lim Ruiz
    Kat Lim Ruiz about 5 years
    definitely a better error message is needed! I just struggled a bit with this on a new PC :)
  • Jnr
    Jnr over 4 years
    I get this error when trying to publish a scoped package to our organization's repository (VSTS) not to npm.
  • Amnon
    Amnon over 3 years
    How is this related to a permission error when attempting to delete a folder?
  • Vaiden
    Vaiden over 3 years
    @Amnon - the correlation is not entirely clear to me as well. A better error log is definitely needed.
  • Amnon
    Amnon over 3 years
    @vaiden the syscall unlink means a deletion of a file or directory is attempted.
  • Vaiden
    Vaiden over 3 years
    @Amnon yeah but I'm not clear on the correlation with the authentication (login) status.
  • Amnon
    Amnon over 3 years
    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.
  • Vaiden
    Vaiden over 3 years
    In most people's case - it is due to the authentication. A login solves it in the majority of cases.