Skip to content
This repository was archived by the owner on Aug 11, 2022. It is now read-only.
This repository was archived by the owner on Aug 11, 2022. It is now read-only.

npm install EPERM renaming package.json in cache #9696

@bryanmacfarlane

Description

@bryanmacfarlane

installing ...

npm ERR! Windows_NT 6.3.9600
npm ERR! argv "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--loglevel" "error"
npm ERR! node v0.12.7
npm ERR! npm  v2.11.3
npm ERR! path C:\Users\vsoagentuser\AppData\Roaming\npm-cache\clone-stats\0.0.1\package\package.json
npm ERR! code EPERM
npm ERR! errno -4048

npm ERR! Error: EPERM, rename 'C:\Users\vsoagentuser\AppData\Roaming\npm-cache\clone-stats\0.0.1\package\package.json'
npm ERR!     at Error (native)
npm ERR!  { [Error: EPERM, rename 'C:\Users\vsoagentuser\AppData\Roaming\npm-cache\clone-stats\0.0.1\package\package.json']
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   path: 'C:\\Users\\vsoagentuser\\AppData\\Roaming\\npm-cache\\clone-stats\\0.0.1\\package\\package.json',
npm ERR!   parent: 'vinyl' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\test\npm-debug.log

npm-debug.log located here
https://gist.github.com/bryanmacfarlane/cc7f49bfd0c651465121

How I Reproduced... Our customers (visual studio online builds on azure VMs) also frequently reproduce

  1. Create Azure Windows 2012 Server VM (can't repro with fast local SSD dev box with Win10)
  2. Clear npm cache
  3. Use a package.json with a graph of many duplicated dependencies (bunch of gulp tasks is typical repro). My package.json repro below
{
  "name": "NpmRepro",
  "version": "1.0.0",
  "description": "NpmRepro",
  "main": "index.js",
  "author": "NpmReproer",
  "dependencies": {
    "del": "*",
    "gulp": "*",
    "gulp-angular-templatecache": "^1.7.0",
    "gulp-autoprefixer": "*",
    "gulp-concat": "*",
    "gulp-cli": "*",
    "gulp-if": "*",
    "gulp-less": "*",
    "gulp-minify-css": "*",
    "gulp-minify-html": "*",
    "gulp-ng-annotate": "*",
    "gulp-rev-easy": "*",
    "gulp-sourcemaps": "*",
    "gulp-typescript": "*",
    "gulp-uglify": "*",
    "gulp-useref": "*",
    "lazypipe": "*",
    "yargs": "*"
  }
}

With the repro steps I listed along with the package.json us and our customers can repro about 50% of the time.

Passing --force so it always gets from the server (and avoids the cache?) is the workaround.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions