Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fsevents installation crashes with "'MSVSProject' object has no attribute 'iteritems'" #661

Closed
timdp opened this issue Jul 9, 2015 · 41 comments
Labels
ERR! node-gyp -v < v10.x.x npm install -g npm Node Sass --> Dart Sass https://github.com/sass/node-sass/issues/2952 Windows

Comments

@timdp
Copy link

timdp commented Jul 9, 2015

I had the same issue as @jamietre in npm/npm#8878. Looking at the stack trace, I'm pretty sure it's node-gyp that's encountering some sort of error while trying to install fsevents (a Mac OS X-specific module, from the looks of it). The error message seems generic enough to be a gyp-related one rather than an fsevents one though, so I'm filing it here.

@cchamberlain
Copy link

Same issue here installing various projects - fsevents always fails even though it seems like it shouldn't be required on a Windows system? I'm on Windows 8.1 with msys2.

image

@alfeg
Copy link

alfeg commented Jul 14, 2015

Same for me. npm/3.1.0 node/v0.12.7 win32 x64

@geoffreydhuyvetters
Copy link

same here

npm 3.1.2 / io.js v2.3.4 / osx 10.10.4

any fix, solution?

@felixbillon
Copy link

+1

@gabrielgiordan
Copy link

Same issue here: node 0.12.7, npm 3.1.3, node-gyp 2.0.2 and Visual Studio 2015 on a Windows 8.1 x64 with environment variable GYP_MSVS_VERSION set to 2015

2015-07-22_4-02-13

@gabrielgiordan
Copy link

I've downgraded to npm 2.11.2 and the package was installed normally.

@nakah
Copy link

nakah commented Jul 24, 2015

I've the issue but can't go back to npm < 3.0 because I really need flattened node_modules folder feature of npm 3.0.
Really need a fix

@rchanou
Copy link

rchanou commented Jul 24, 2015

I've gotten this error, but the modules worked fine anyways. Last time I specifically remember this happening is with webpack. Using 3.1.0 in Windows 8.1. Discussed in the fsevents repo in fsevents/fsevents#73.

@rchanou
Copy link

rchanou commented Jul 24, 2015

And NPM is fixing the errors for optional modules: npm/npm#8921

@timdp
Copy link
Author

timdp commented Jul 24, 2015

@rchanou I just came across that npm issue myself. It looks like that's the real culprit.

@iarna
Copy link
Member

iarna commented Jul 25, 2015

Hey! Good news, this should be fixed in the just released npm@3.2.0!

@gabrielgiordan
Copy link

Awesome news @iarna just tested the new release right now and worked like a charm! Many thanks!

@Fishrock123
Copy link
Member

Thanks @iarna :)

@andrei-eliseev-sb
Copy link

Hey, @iarna! I still have this problem with npm 3.5.0.

npm install

> fsevents@0.3.8 install C:\_work\project\node_modules\fsevents
> node-gyp rebuild


C:\_work\project\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Traceback (most recent call last):
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py", line 18, in <module>
    sys.exit(gyp.script_main())
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 533, in script_main
    return main(sys.argv[1:])
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 526, in main
    return gyp_main(args)
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 511, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 2000, in GenerateOutput
    sln_projects, project_objects, flat=msvs_version.FlatSolution())
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1759, in _GatherSolutionFolders
    return _DictsToFolders('', root, flat)
  File "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1712, in _DictsToFolders
    for folder, contents in bucket.iteritems():
AttributeError: 'MSVSProject' object has no attribute 'iteritems'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:355:16)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
gyp ERR! System Windows_NT 6.3.9600
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd C:\_work\project\node_modules\fsevents
gyp ERR! node -v v0.12.2
gyp ERR! node-gyp -v v3.0.3
gyp ERR! not ok
npm WARN install:fsevents@0.3.8 fsevents@0.3.8 install: `node-gyp rebuild`
npm WARN install:fsevents@0.3.8 Exit status 1
npm -v
3.5.0

We are using shrinkwrap.json if it's important.

@andrei-eliseev-sb
Copy link

If I delete shrinkwrap.json and node_modules folder then the problem goes away. But I get another warning

npm install
npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.5

Not sure if the problem is solved because fsevents is updated after deleting shrinkwrap.json..

bholloway pushed a commit to angularity/webpack-angularity-solution that referenced this issue May 18, 2016
bholloway pushed a commit to angularity/webpack-angularity-solution that referenced this issue May 18, 2016
@alexeikaratai
Copy link

Help pls /
PS C:\work\f8app> npm install

fsevents@1.0.11 install C:\work\f8app\node_modules\fsevents
node-pre-gyp install --fallback-to-build

C:\work\f8app\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\Users\Alexei\AppData\Roaming\npm\node_m
odules\npm\bin\node-gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" clean ) else (node "" clean )

C:\work\f8app\node_modules\fsevents>if not defined npm_config_node_gyp (node "C:\Users\Alexei\AppData\Roaming\npm\node_m
odules\npm\bin\node-gyp-bin....\node_modules\node-gyp\bin\node-gyp.js" configure --fallback-to-build --module=C:\work
\f8app\node_modules\fsevents\lib\binding\Release\node-v48-win32-x64\fse.node --module_name=fse --module_path=C:\work\f8a
pp\node_modules\fsevents\lib\binding\Release\node-v48-win32-x64 --msvs_version=2013 ) else (node "" configure --fallbac
k-to-build --module=C:\work\f8app\node_modules\fsevents\lib\binding\Release\node-v48-win32-x64\fse.node --module_name=fs
e --module_path=C:\work\f8app\node_modules\fsevents\lib\binding\Release\node-v48-win32-x64 --msvs_version=2013 )
Traceback (most recent call last):
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py", line 16, in <module

sys.exit(gyp.script_main())

File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp__init__.py", line 545,
in script_main
return main(sys.argv[1:])
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp__init__.py", line 538,
in main
return gyp_main(args)
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp__init__.py", line 523,
in gyp_main
generator.GenerateOutput(flat_list, targets, data, params)
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", lin
e 2003, in GenerateOutput
sln_projects, project_objects, flat=msvs_version.FlatSolution())
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", lin
e 1762, in _GatherSolutionFolders
return _DictsToFolders('', root, flat)
File "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", lin
e 1715, in _DictsToFolders
for folder, contents in bucket.iteritems():
AttributeError: 'MSVSProject' object has no attribute 'iteritems'
gyp ERR! configure error
gyp ERR! stack Error: gyp failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp
lib\configure.js:305:16)
gyp ERR! stack at emitTwo (events.js:106:13)
gyp ERR! stack at ChildProcess.emit (events.js:191:7)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\nod
e_modules\node-gyp\bin\node-gyp.js" "configure" "--fallback-to-build" "--module=C:\work\f8app\node_modules\fseven
ts\lib\binding\Release\node-v48-win32-x64\fse.node" "--module_name=fse" "--module_path=C:\work\f8app\node_module
s\fsevents\lib\binding\Release\node-v48-win32-x64" "--msvs_version=2013"
gyp ERR! cwd C:\work\f8app\node_modules\fsevents
gyp ERR! node -v v6.2.0
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'node-gyp.cmd configure --fallback-to-build --module=C:\work\f8app\node
_modules\fsevents\lib\binding\Release\node-v48-win32-x64\fse.node --module_name=fse --module_path=C:\work\f8app\node_mod
ules\fsevents\lib\binding\Release\node-v48-win32-x64 --msvs_version=2013' (1)
node-pre-gyp ERR! stack at ChildProcess. (C:\work\f8app\node_modules\fsevents\node_modules\node-pre-gyp\l
ib\util\compile.js:83:29)
node-pre-gyp ERR! stack at emitTwo (events.js:106:13)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:191:7)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:850:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
node-pre-gyp ERR! System Windows_NT 10.0.10586
node-pre-gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\work\f8app\node_modules\fsevents\node_modules
node-pre-gyp\bin\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\work\f8app\node_modules\fsevents
node-pre-gyp ERR! node -v v6.2.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.25
node-pre-gyp ERR! not ok
Failed to execute 'node-gyp.cmd configure --fallback-to-build --module=C:\work\f8app\node_modules\fsevents\lib\binding\R
elease\node-v48-win32-x64\fse.node --module_name=fse --module_path=C:\work\f8app\node_modules\fsevents\lib\binding\Relea
se\node-v48-win32-x64 --msvs_version=2013' (1)
npm ERR! Windows_NT 10.0.10586
npm ERR! argv "C:\Program Files\nodejs\node.exe" "C:\Users\Alexei\AppData\Roaming\npm\node_modules\npm\bin\n
pm-cli.js" "install"
npm ERR! node v6.2.0
npm ERR! npm v3.9.2
npm ERR! code ELIFECYCLE

npm ERR! fsevents@1.0.11 install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fsevents@1.0.11 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the fsevents package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs fsevents
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls fsevents
npm ERR! There is likely additional logging output above.

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

@rjimenez-icinetic
Copy link

+1

@radum
Copy link

radum commented Jun 18, 2016

This is no longer an issue if you follow the install steps from node-gyp module readme file.

Make sure you have the proper MSVS version installed, the correct env PATH set, and env vars set. Also update your Git version from the website, it solves a lot of issues. Make sure git is available from the CMD and only from Gitbash.

The only problem might be where npm modules are very old and outdated. There nothing you can do for this, unless you start raising PRs to fix them.

Also you can use node-gyp-install from NPM to help you with node-gyp it that fails to download the proper files. Just install globally node gyp and run node-gyp-install after.

@Xstoudi
Copy link

Xstoudi commented Aug 8, 2016

Still doesn't work with npm@3.9.5 on Windows 10... :/

X:\Programmation\NodeJS\vscode>scripts\npm install
npm WARN deprecated graceful-fs@3.0.8: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated lodash@1.0.2: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0 as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
npm WARN deprecated minimatch@0.2.12: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated minimatch@0.3.0: Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue
npm WARN deprecated jade@0.26.3: Jade has been renamed to pug, please install the latest version of pug instead of jade
npm WARN deprecated to-iso-string@0.0.2: to-iso-string has been deprecated, use @segment/to-iso-string instead.

> typechecker@2.0.8 preinstall X:\Programmation\NodeJS\vscode\node_modules\.staging\typechecker-82edb379
> node ./cyclic.js

npm WARN prefer global coffee-script@1.10.0 should be installed with -g
npm WARN prefer global js-beautify@1.5.10 should be installed with -g

> fsevents@0.3.8 install X:\Programmation\NodeJS\vscode\node_modules\fsevents
> node-gyp rebuild


X:\Programmation\NodeJS\vscode\node_modules\fsevents>if not defined npm_config_node_gyp (node "P:\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
Traceback (most recent call last):
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\gyp_main.py", line 16, in <module>
    sys.exit(gyp.script_main())
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 545, in script_main
    return main(sys.argv[1:])
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 538, in main
    return gyp_main(args)
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 523, in gyp_main
    generator.GenerateOutput(flat_list, targets, data, params)
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 2003, in GenerateOutput
    sln_projects, project_objects, flat=msvs_version.FlatSolution())
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1762, in _GatherSolutionFolders
    return _DictsToFolders('', root, flat)
  File "P:\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1715, in _DictsToFolders
    for folder, contents in bucket.iteritems():
AttributeError: 'MSVSProject' object has no attribute 'iteritems'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (P:\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:305:16)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Windows_NT 10.0.10586
gyp ERR! command "P:\\nodejs\\node.exe" "P:\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd X:\Programmation\NodeJS\vscode\node_modules\fsevents
gyp ERR! node -v v6.2.2
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
code-oss-dev@1.5.0 X:\Programmation\NodeJS\vscode
+-- applicationinsights@0.15.6
+-- async@1.5.2
+-- azure-storage@0.3.3
| +-- extend@1.2.1
| +-- node-uuid@1.4.7
| +-- request@2.27.0
| | +-- aws-sign@0.3.0
| | +-- cookie-jar@0.3.0
| | +-- forever-agent@0.5.2
| | +-- form-data@0.1.4
| | | +-- async@0.9.2
| | | `-- combined-stream@0.0.7
| | |   `-- delayed-stream@0.0.5
| | +-- hawk@1.0.0
| | | +-- boom@0.4.2
| | | +-- cryptiles@0.2.2
| | | +-- hoek@0.9.1
| | | `-- sntp@0.2.4
| | +-- http-signature@0.10.1
| | | +-- asn1@0.1.11
| | | +-- assert-plus@0.1.5
| | | `-- ctype@0.5.3
| | +-- json-stringify-safe@5.0.1
| | +-- oauth-sign@0.3.0
| | +-- qs@0.6.6
| | `-- tunnel-agent@0.3.0
| +-- underscore@1.4.4
| +-- validator@3.1.0
| +-- xml2js@0.2.7
| | `-- sax@0.5.2
| `-- xmlbuilder@0.4.3
+-- chokidar@1.0.5
| +-- anymatch@1.3.0
| | `-- micromatch@2.3.7
| |   +-- arr-diff@2.0.0
| |   | `-- arr-flatten@1.0.1
| |   +-- array-unique@0.2.1
| |   +-- braces@1.8.3
| |   | +-- expand-range@1.8.1
| |   | | `-- fill-range@2.2.3
| |   | |   +-- is-number@2.1.0
| |   | |   +-- randomatic@1.1.5
| |   | |   `-- repeat-string@1.5.4
| |   | +-- preserve@0.2.0
| |   | `-- repeat-element@1.1.2
| |   +-- expand-brackets@0.1.5
| |   | `-- is-posix-bracket@0.1.1
| |   +-- extglob@0.3.2
| |   +-- filename-regex@2.0.0
| |   +-- is-extglob@1.0.0
| |   +-- is-glob@2.0.1
| |   +-- kind-of@3.0.2
| |   | `-- is-buffer@1.1.3
| |   +-- normalize-path@2.0.1
| |   +-- object.omit@2.0.0
| |   | +-- for-own@0.1.4
| |   | | `-- for-in@0.1.5
| |   | `-- is-extendable@0.1.1
| |   +-- parse-glob@3.0.4
| |   | +-- glob-base@0.3.0
| |   | | +-- glob-parent@2.0.0
| |   | | `-- is-glob@2.0.1
| |   | +-- is-dotfile@1.0.2
| |   | `-- is-glob@2.0.1
| |   `-- regex-cache@0.4.3
| |     +-- is-equal-shallow@0.1.3
| |     `-- is-primitive@2.0.0
| +-- arrify@1.0.1
| +-- async-each@0.1.6
| +-- glob-parent@1.3.0
| | `-- is-glob@2.0.1
| +-- is-binary-path@1.0.1
| | `-- binary-extensions@1.4.0
| +-- is-glob@1.1.3
| +-- path-is-absolute@1.0.0
| `-- readdirp@1.4.0
|   `-- readable-stream@1.0.34
+-- clean-css@3.4.6
| `-- commander@2.8.1
|   `-- graceful-readlink@1.0.1
+-- clone@1.0.2
+-- cson-parser@1.3.3
| `-- coffee-script@1.10.0
+-- debounce@1.0.0
| `-- date-now@1.0.1
+-- documentdb@1.9.0
+-- emmet@1.3.1
+-- event-stream@3.3.4
| +-- duplexer@0.1.1
| +-- from@0.1.3
| +-- map-stream@0.1.0
| +-- pause-stream@0.0.11
| +-- split@0.3.3
| +-- stream-combiner@0.0.4
| `-- through@2.3.8
+-- express@4.14.0
| +-- accepts@1.3.3
| | +-- mime-types@2.1.11
| | | `-- mime-db@1.23.0
| | `-- negotiator@0.6.1
| +-- array-flatten@1.1.1
| +-- content-disposition@0.5.1
| +-- content-type@1.0.2
| +-- cookie@0.3.1
| +-- cookie-signature@1.0.6
| +-- debug@2.2.0
| | `-- ms@0.7.1
| +-- depd@1.1.0
| +-- encodeurl@1.0.1
| +-- escape-html@1.0.3
| +-- etag@1.7.0
| +-- finalhandler@0.5.0
| | +-- statuses@1.3.0
| | `-- unpipe@1.0.0
| +-- fresh@0.3.0
| +-- merge-descriptors@1.0.1
| +-- methods@1.1.2
| +-- on-finished@2.3.0
| | `-- ee-first@1.1.1
| +-- parseurl@1.3.1
| +-- path-to-regexp@0.1.7
| +-- proxy-addr@1.1.2
| | +-- forwarded@0.1.0
| | `-- ipaddr.js@1.1.1
| +-- qs@6.2.0
| +-- range-parser@1.2.0
| +-- send@0.14.1
| | +-- destroy@1.0.4
| | +-- http-errors@1.5.0
| | | `-- setprototypeof@1.0.1
| | `-- mime@1.3.4
| +-- serve-static@1.11.1
| +-- type-is@1.6.13
| | `-- media-typer@0.3.0
| +-- utils-merge@1.0.0
| `-- vary@1.1.0
+-- getmac@1.0.7
| `-- extract-opts@2.2.0
|   `-- typechecker@2.0.8
+-- ghooks@1.0.3
| +-- findup@0.1.5
| | +-- colors@0.6.2
| | `-- commander@2.1.0
| +-- lodash.clone@3.0.3
| | +-- lodash._baseclone@3.3.0
| | | +-- lodash._arraycopy@3.0.0
| | | +-- lodash._arrayeach@3.0.0
| | | +-- lodash._baseassign@3.2.0
| | | +-- lodash._basefor@3.0.3
| | | `-- lodash.isarray@3.0.4
| | +-- lodash._bindcallback@3.0.1
| | `-- lodash._isiterateecall@3.0.9
| +-- manage-path@2.0.0
| `-- spawn-command@0.0.2
+-- glob@5.0.15
| +-- inflight@1.0.5
| | `-- wrappy@1.0.2
| +-- inherits@2.0.1
| +-- minimatch@3.0.2
| | `-- brace-expansion@1.1.6
| |   +-- balanced-match@0.4.2
| |   `-- concat-map@0.0.1
| `-- once@1.3.3
+-- graceful-fs@4.1.2
+-- gulp@3.9.1
| +-- archy@1.0.0
| +-- chalk@1.1.3
| | +-- ansi-styles@2.2.1
| | +-- escape-string-regexp@1.0.5
| | +-- has-ansi@2.0.0
| | | `-- ansi-regex@2.0.0
| | +-- strip-ansi@3.0.1
| | `-- supports-color@2.0.0
| +-- deprecated@0.0.1
| +-- interpret@1.0.1
| +-- liftoff@2.3.0
| | +-- findup-sync@0.4.2
| | | +-- detect-file@0.1.0
| | | | `-- fs-exists-sync@0.1.0
| | | +-- is-glob@2.0.1
| | | `-- resolve-dir@0.1.1
| | |   `-- global-modules@0.2.3
| | |     +-- global-prefix@0.1.4
| | |     | `-- osenv@0.1.3
| | |     `-- is-windows@0.2.0
| | +-- fined@1.0.1
| | | +-- expand-tilde@1.2.2
| | | +-- lodash.assignwith@4.1.0
| | | +-- lodash.isarray@4.0.0
| | | +-- lodash.isempty@4.3.1
| | | +-- lodash.pick@4.3.0
| | | `-- parse-filepath@1.0.1
| | |   +-- is-absolute@0.2.5
| | |   | +-- is-relative@0.2.1
| | |   | | `-- is-unc-path@0.1.1
| | |   | |   `-- unc-path-regex@0.1.2
| | |   | `-- is-windows@0.1.1
| | |   +-- map-cache@0.2.2
| | |   `-- path-root@0.1.1
| | |     `-- path-root-regex@0.1.2
| | +-- flagged-respawn@0.3.2
| | +-- lodash.isplainobject@4.0.5
| | +-- lodash.isstring@4.0.1
| | +-- lodash.mapvalues@4.5.1
| | `-- rechoir@0.6.2
| +-- orchestrator@0.3.7
| | +-- end-of-stream@0.1.5
| | +-- sequencify@0.0.7
| | `-- stream-consume@0.1.0
| +-- pretty-hrtime@1.0.2
| +-- tildify@1.2.0
| | `-- os-homedir@1.0.1
| +-- v8flags@2.0.11
| | `-- user-home@1.1.1
| `-- vinyl-fs@0.3.14
|   +-- defaults@1.0.3
|   +-- glob-stream@3.1.18
|   | +-- glob@4.5.3
|   | +-- minimatch@2.0.10
|   | +-- ordered-read-streams@0.1.0
|   | +-- through2@0.6.5
|   | `-- unique-stream@1.0.0
|   +-- glob-watcher@0.0.6
|   | `-- gaze@0.5.2
|   |   `-- globule@0.1.0
|   |     +-- glob@3.1.21
|   |     | +-- graceful-fs@1.2.3
|   |     | `-- inherits@1.0.2
|   |     `-- lodash@1.0.2
|   +-- graceful-fs@3.0.8
|   +-- strip-bom@1.0.0
|   | `-- first-chunk-stream@1.0.0
|   `-- through2@0.6.5
+-- gulp-atom-electron@1.8.0
| +-- github-releases@0.2.1
| | +-- grunt@0.4.5
| | | +-- async@0.1.22
| | | +-- coffee-script@1.3.3
| | | +-- dateformat@1.0.2-1.2.3
| | | +-- eventemitter2@0.4.14
| | | +-- exit@0.1.2
| | | +-- findup-sync@0.1.3
| | | | +-- glob@3.2.11
| | | | | `-- minimatch@0.3.0
| | | | `-- lodash@2.4.2
| | | +-- getobject@0.1.0
| | | +-- glob@3.1.21
| | | | +-- graceful-fs@1.2.3
| | | | `-- inherits@1.0.2
| | | +-- grunt-legacy-log@0.1.3
| | | | +-- grunt-legacy-log-utils@0.1.1
| | | | | +-- lodash@2.4.2
| | | | | `-- underscore.string@2.3.3
| | | | +-- lodash@2.4.2
| | | | `-- underscore.string@2.3.3
| | | +-- grunt-legacy-util@0.2.0
| | | | +-- async@0.1.22
| | | | +-- lodash@0.9.2
| | | | `-- which@1.0.9
| | | +-- hooker@0.2.3
| | | +-- iconv-lite@0.2.11
| | | +-- js-yaml@2.0.5
| | | | +-- argparse@0.1.16
| | | | | +-- underscore@1.7.0
| | | | | `-- underscore.string@2.4.0
| | | | `-- esprima@1.0.4
| | | +-- lodash@0.9.2
| | | +-- nopt@1.0.10
| | | +-- rimraf@2.2.8
| | | +-- underscore.string@2.2.1
| | | `-- which@1.0.9
| | +-- minimatch@0.2.12
| | +-- optimist@0.4.0
| | `-- prettyjson@0.8.1
| |   `-- colors@0.6.0-1
| +-- gulp-filter@4.0.0
| +-- progress@1.1.8
| +-- rcedit@0.3.0
| +-- temp@0.8.3
| | +-- os-tmpdir@1.0.1
| | `-- rimraf@2.2.8
| `-- vinyl@0.5.3
+-- gulp-azure-storage@0.6.0
| +-- azure-storage@0.8.0
| | +-- browserify-mime@1.2.9
| | +-- extend@1.2.1
| | +-- readable-stream@2.0.6
| | | `-- isarray@1.0.0
| | +-- request@2.57.0
| | | +-- combined-stream@1.0.5
| | | | `-- delayed-stream@1.0.0
| | | +-- forever-agent@0.6.1
| | | +-- form-data@0.2.0
| | | | +-- async@0.9.2
| | | | `-- combined-stream@0.0.7
| | | |   `-- delayed-stream@0.0.5
| | | +-- hawk@2.3.1
| | | | +-- boom@2.10.1
| | | | +-- cryptiles@2.0.5
| | | | +-- hoek@2.16.3
| | | | `-- sntp@1.0.9
| | | +-- http-signature@0.11.0
| | | +-- mime-types@2.0.14
| | | | `-- mime-db@1.12.0
| | | +-- oauth-sign@0.8.2
| | | +-- qs@3.1.0
| | | `-- tunnel-agent@0.4.3
| | +-- underscore@1.4.4
| | `-- validator@3.22.2
| +-- delayed-stream@0.0.6
| +-- mime@1.3.4
| +-- optimist@0.6.1
| | `-- minimist@0.0.10
| +-- queue@3.1.0
| `-- streamifier@0.1.1
+-- gulp-bom@1.0.0
| `-- through2@2.0.1
|   +-- readable-stream@2.0.6
|   | `-- isarray@1.0.0
|   `-- xtend@4.0.1
+-- gulp-buffer@0.0.2
| `-- through2@0.4.2
|   `-- xtend@2.1.2
|     `-- object-keys@0.4.0
+-- gulp-concat@2.6.0
| +-- concat-with-sourcemaps@1.0.4
| | `-- source-map@0.5.6
| `-- through2@0.6.5
+-- gulp-cssnano@2.1.2
| +-- cssnano@3.7.3
| | +-- autoprefixer@6.4.0
| | | +-- browserslist@1.3.5
| | | +-- caniuse-db@1.0.30000518
| | | +-- normalize-range@0.1.2
| | | `-- num2fraction@1.2.2
| | +-- decamelize@1.2.0
| | +-- defined@1.0.0
| | +-- indexes-of@1.0.1
| | +-- postcss@5.1.2
| | | +-- js-base64@2.1.9
| | | +-- source-map@0.5.6
| | | `-- supports-color@3.1.2
| | +-- postcss-calc@5.3.0
| | | +-- postcss-message-helpers@2.0.0
| | | `-- reduce-css-calc@1.2.4
| | |   +-- balanced-match@0.1.0
| | |   `-- reduce-function-call@1.0.1
| | |     `-- balanced-match@0.1.0
| | +-- postcss-colormin@2.2.0
| | | `-- colormin@1.1.1
| | |   +-- color@0.11.3
| | |   | +-- color-convert@1.3.1
| | |   | `-- color-string@0.3.0
| | |   |   `-- color-name@1.1.1
| | |   `-- css-color-names@0.0.4
| | +-- postcss-convert-values@2.4.0
| | +-- postcss-discard-comments@2.0.4
| | +-- postcss-discard-duplicates@2.0.1
| | +-- postcss-discard-empty@2.1.0
| | +-- postcss-discard-overridden@0.1.1
| | +-- postcss-discard-unused@2.2.1
| | | +-- flatten@1.0.2
| | | `-- uniqs@2.0.0
| | +-- postcss-filter-plugins@2.0.1
| | | `-- uniqid@3.1.0
| | |   `-- macaddress@0.2.8
| | +-- postcss-merge-idents@2.1.6
| | | `-- has-own@1.0.0
| | +-- postcss-merge-longhand@2.0.1
| | +-- postcss-merge-rules@2.0.10
| | | `-- vendors@1.0.0
| | +-- postcss-minify-font-values@1.0.5
| | +-- postcss-minify-gradients@1.0.3
| | +-- postcss-minify-params@1.0.4
| | | `-- alphanum-sort@1.0.2
| | +-- postcss-minify-selectors@2.0.5
| | | `-- postcss-selector-parser@2.2.0
| | |   `-- uniq@1.0.1
| | +-- postcss-normalize-charset@1.1.0
| | +-- postcss-normalize-url@3.0.7
| | | +-- is-absolute-url@2.0.0
| | | `-- normalize-url@1.6.0
| | |   +-- prepend-http@1.0.4
| | |   +-- query-string@4.2.2
| | |   | `-- strict-uri-encode@1.1.0
| | |   `-- sort-keys@1.1.2
| | |     `-- is-plain-obj@1.1.0
| | +-- postcss-ordered-values@2.2.1
| | +-- postcss-reduce-idents@2.3.0
| | +-- postcss-reduce-initial@1.0.0
| | +-- postcss-reduce-transforms@1.0.3
| | +-- postcss-svgo@2.1.4
| | | +-- is-svg@2.0.1
| | | | `-- html-comment-regex@1.1.1
| | | `-- svgo@0.6.6
| | |   +-- coa@1.0.1
| | |   | `-- q@1.4.1
| | |   +-- colors@1.1.2
| | |   +-- csso@2.0.0
| | |   | +-- clap@1.1.1
| | |   | `-- source-map@0.5.6
| | |   +-- js-yaml@3.6.1
| | |   | +-- argparse@1.0.7
| | |   | `-- esprima@2.7.2
| | |   +-- sax@1.2.1
| | |   `-- whet.extend@0.9.9
| | +-- postcss-unique-selectors@2.0.2
| | +-- postcss-value-parser@3.3.0
| | `-- postcss-zindex@2.1.1
| `-- vinyl-sourcemaps-apply@0.2.1
|   `-- source-map@0.5.6
+-- gulp-filter@3.0.1
| +-- multimatch@2.1.0
| | +-- array-union@1.0.2
| | `-- minimatch@3.0.2
| `-- streamfilter@1.0.5
|   `-- readable-stream@2.1.4
|     `-- isarray@1.0.0
+-- gulp-json-editor@2.2.1
| +-- deepmerge@0.2.10
| +-- detect-indent@2.0.0
| | +-- get-stdin@3.0.2
| | `-- repeating@1.1.3
| |   `-- is-finite@1.0.1
| |     `-- number-is-nan@1.0.0
| +-- js-beautify@1.5.10
| | +-- config-chain@1.1.10
| | | +-- ini@1.3.4
| | | `-- proto-list@1.2.4
| | `-- nopt@3.0.6
| `-- through2@0.5.1
|   `-- xtend@3.0.0
+-- gulp-mocha@2.2.0
| +-- plur@2.1.2
| | `-- irregular-plurals@1.2.0
| `-- resolve-from@1.0.1
+-- gulp-remote-src@0.4.1
| +-- event-stream@3.1.7
| | `-- split@0.2.10
| +-- node.extend@1.1.5
| +-- request@2.58.0
| | +-- aws-sign2@0.5.0
| | +-- bl@0.9.5
| | +-- caseless@0.10.0
| | +-- combined-stream@1.0.5
| | | `-- delayed-stream@1.0.0
| | +-- extend@2.0.1
| | +-- forever-agent@0.6.1
| | +-- form-data@1.0.0-rc4
| | | `-- mime-types@2.1.11
| | +-- har-validator@1.8.0
| | | +-- bluebird@2.10.2
| | | `-- is-my-json-valid@2.13.1
| | |   +-- generate-function@2.0.0
| | |   +-- generate-object-property@1.2.0
| | |   | `-- is-property@1.0.2
| | |   `-- jsonpointer@2.0.0
| | +-- hawk@2.3.1
| | | +-- boom@2.10.1
| | | +-- cryptiles@2.0.5
| | | +-- hoek@2.16.3
| | | `-- sntp@1.0.9
| | +-- http-signature@0.11.0
| | +-- isstream@0.1.2
| | +-- mime-types@2.0.14
| | | `-- mime-db@1.12.0
| | +-- oauth-sign@0.8.2
| | +-- qs@3.1.0
| | +-- stringstream@0.0.5
| | +-- tough-cookie@2.3.1
| | `-- tunnel-agent@0.4.3
| +-- through2@0.5.1
| | `-- xtend@3.0.0
| `-- vinyl@0.2.3
+-- gulp-rename@1.2.2
+-- gulp-replace@0.5.4
| +-- istextorbinary@1.0.2
| | +-- binaryextensions@1.0.1
| | `-- textextensions@1.0.2
| +-- readable-stream@2.1.4
| | +-- buffer-shims@1.0.0
| | +-- core-util-is@1.0.2
| | +-- isarray@1.0.0
| | +-- process-nextick-args@1.0.7
| | `-- string_decoder@0.10.31
| `-- replacestream@4.0.0
|   +-- object-assign@3.0.0
|   `-- readable-stream@2.1.4
|     `-- isarray@1.0.0
+-- gulp-shell@0.5.2
| `-- lodash@4.14.1
+-- gulp-sourcemaps@1.6.0
| +-- convert-source-map@1.3.0
| +-- strip-bom@2.0.0
| | `-- is-utf8@0.2.1
| `-- vinyl@1.2.0
+-- gulp-symdest@1.0.0
| +-- queue@3.1.0
| `-- vinyl-fs@1.0.0
|   +-- duplexify@3.4.5
|   | +-- end-of-stream@1.0.0
|   | +-- readable-stream@2.1.4
|   | | `-- isarray@1.0.0
|   | `-- stream-shift@1.0.0
|   +-- glob-stream@4.1.1
|   | +-- glob@4.5.3
|   | +-- minimatch@2.0.10
|   | `-- unique-stream@2.2.1
|   |   +-- json-stable-stringify@1.0.1
|   |   | `-- jsonify@0.0.0
|   |   `-- through2-filter@2.0.0
|   +-- glob-watcher@0.0.8
|   +-- graceful-fs@3.0.8
|   +-- merge-stream@0.1.8
|   | `-- through2@0.6.5
|   +-- object-assign@2.1.1
|   +-- strip-bom@1.0.0
|   `-- through2@0.6.5
+-- gulp-tsb@1.10.4
+-- gulp-tslint@4.3.5
| `-- rcloader@0.2.1
|   +-- lodash.assign@4.1.0
|   +-- lodash.isobject@3.0.2
|   +-- lodash.merge@4.5.1
|   `-- rcfinder@0.1.9
|     `-- lodash.clonedeep@4.4.1
+-- gulp-uglify@1.5.4
| +-- deap@1.0.0
| +-- fancy-log@1.2.0
| | `-- time-stamp@1.0.1
| +-- isobject@2.0.0
| | `-- isarray@0.0.1
| +-- uglify-js@2.6.4
| | +-- async@0.2.10
| | +-- source-map@0.5.6
| | `-- yargs@3.10.0
| |   +-- camelcase@1.2.1
| |   +-- cliui@2.1.0
| |   | +-- center-align@0.1.3
| |   | | +-- align-text@0.1.4
| |   | | | `-- longest@1.0.1
| |   | | `-- lazy-cache@1.0.4
| |   | +-- right-align@0.1.3
| |   | `-- wordwrap@0.0.2
| |   `-- window-size@0.1.0
| `-- uglify-save-license@0.4.1
+-- gulp-util@3.0.7
| +-- array-differ@1.0.0
| +-- array-uniq@1.0.3
| +-- beeper@1.1.0
| +-- dateformat@1.0.12
| | +-- get-stdin@4.0.1
| | `-- meow@3.7.0
| |   +-- camelcase-keys@2.1.0
| |   +-- loud-rejection@1.6.0
| |   | +-- currently-unhandled@0.4.1
| |   | | `-- array-find-index@1.0.1
| |   | `-- signal-exit@3.0.0
| |   +-- map-obj@1.0.1
| |   +-- normalize-package-data@2.3.5
| |   | +-- hosted-git-info@2.1.5
| |   | +-- is-builtin-module@1.0.0
| |   | | `-- builtin-modules@1.1.1
| |   | `-- validate-npm-package-license@3.0.1
| |   |   +-- spdx-correct@1.0.2
| |   |   | `-- spdx-license-ids@1.2.2
| |   |   `-- spdx-expression-parse@1.0.2
| |   |     `-- spdx-exceptions@1.0.5
| |   +-- read-pkg-up@1.0.1
| |   | +-- find-up@1.1.2
| |   | | `-- path-exists@2.1.0
| |   | `-- read-pkg@1.1.0
| |   |   +-- load-json-file@1.1.0
| |   |   | +-- parse-json@2.2.0
| |   |   | | `-- error-ex@1.3.0
| |   |   | |   `-- is-arrayish@0.2.1
| |   |   | `-- pify@2.3.0
| |   |   `-- path-type@1.1.0
| |   +-- redent@1.0.0
| |   | +-- indent-string@2.1.0
| |   | | `-- repeating@2.0.1
| |   | `-- strip-indent@1.0.1
| |   `-- trim-newlines@1.0.0
| +-- gulplog@1.0.0
| | `-- glogg@1.0.0
| +-- has-gulplog@0.1.0
| | `-- sparkles@1.0.0
| +-- lodash._reescape@3.0.0
| +-- lodash._reevaluate@3.0.0
| +-- lodash._reinterpolate@3.0.0
| +-- lodash.template@3.6.2
| | +-- lodash._basecopy@3.0.1
| | +-- lodash._basetostring@3.0.1
| | +-- lodash._basevalues@3.0.0
| | +-- lodash.escape@3.2.0
| | | `-- lodash._root@3.0.1
| | +-- lodash.keys@3.1.2
| | | +-- lodash._getnative@3.9.1
| | | `-- lodash.isarguments@3.0.9
| | +-- lodash.restparam@3.6.1
| | `-- lodash.templatesettings@3.1.1
| +-- multipipe@0.1.2
| | `-- duplexer2@0.0.2
| |   `-- readable-stream@1.1.14
| +-- object-assign@3.0.0
| +-- replace-ext@0.0.1
| `-- vinyl@0.5.3
+-- gulp-vinyl-zip@1.2.2
| +-- queue@3.1.0
| +-- through2@0.6.5
| `-- yazl@2.4.1
|   `-- buffer-crc32@0.2.5
+-- gulp-watch@4.3.6
| +-- glob@5.0.15
| | `-- minimatch@3.0.2
| +-- glob2base@0.0.12
| | `-- find-index@0.1.1
| +-- readable-stream@2.1.4
| | `-- isarray@1.0.0
| +-- vinyl@0.5.3
| `-- vinyl-file@1.3.0
|   +-- strip-bom-stream@1.0.0
|   `-- vinyl@1.2.0
+-- http-proxy-agent@0.2.7
| +-- agent-base@1.0.2
| `-- extend@3.0.0
+-- https-proxy-agent@0.3.6
+-- iconv-lite@0.4.13
+-- innosetup-compiler@5.5.62
+-- is@3.1.0
+-- istanbul@0.3.22
| +-- abbrev@1.0.9
| +-- escodegen@1.7.1
| | +-- esprima@1.2.5
| | +-- estraverse@1.9.3
| | +-- esutils@2.0.2
| | +-- optionator@0.5.0
| | | +-- deep-is@0.1.3
| | | +-- fast-levenshtein@1.0.7
| | | +-- levn@0.2.5
| | | +-- prelude-ls@1.1.2
| | | `-- type-check@0.3.2
| | `-- source-map@0.2.0
| +-- esprima@2.5.0
| +-- fileset@0.2.1
| | `-- minimatch@2.0.10
| +-- handlebars@4.0.5
| | +-- optimist@0.6.1
| | | `-- minimist@0.0.10
| | `-- uglify-js@2.7.0
| |   +-- async@0.2.10
| |   `-- source-map@0.5.6
| +-- js-yaml@3.6.1
| | +-- argparse@1.0.7
| | `-- esprima@2.7.2
| +-- nopt@3.0.6
| +-- resolve@1.1.7
| +-- supports-color@3.1.2
| | `-- has-flag@1.0.0
| +-- which@1.2.10
| | `-- isexe@1.1.2
| `-- wordwrap@1.0.0
+-- jsdom-no-contextify@3.1.0
| +-- browser-request@0.3.3
| +-- cssom@0.3.1
| +-- cssstyle@0.2.36
| +-- htmlparser2@3.9.1
| | +-- domelementtype@1.3.0
| | +-- domhandler@2.3.0
| | +-- domutils@1.5.1
| | | `-- dom-serializer@0.1.0
| | |   `-- domelementtype@1.1.3
| | +-- entities@1.1.1
| | `-- readable-stream@2.1.4
| |   `-- isarray@1.0.0
| +-- nwmatcher@1.3.8
| +-- parse5@1.5.1
| +-- request@2.74.0
| | +-- aws-sign2@0.6.0
| | +-- aws4@1.4.1
| | +-- bl@1.1.2
| | | `-- readable-stream@2.0.6
| | |   `-- isarray@1.0.0
| | +-- caseless@0.11.0
| | +-- combined-stream@1.0.5
| | | `-- delayed-stream@1.0.0
| | +-- forever-agent@0.6.1
| | +-- form-data@1.0.0-rc4
| | +-- har-validator@2.0.6
| | | +-- commander@2.9.0
| | | `-- pinkie-promise@2.0.1
| | |   `-- pinkie@2.0.4
| | +-- hawk@3.1.3
| | | +-- boom@2.10.1
| | | +-- cryptiles@2.0.5
| | | +-- hoek@2.16.3
| | | `-- sntp@1.0.9
| | +-- http-signature@1.1.1
| | | +-- assert-plus@0.2.0
| | | +-- jsprim@1.3.0
| | | | +-- extsprintf@1.0.2
| | | | +-- json-schema@0.2.2
| | | | `-- verror@1.3.6
| | | `-- sshpk@1.9.2
| | |   +-- asn1@0.2.3
| | |   +-- assert-plus@1.0.0
| | |   +-- dashdash@1.14.0
| | |   | `-- assert-plus@1.0.0
| | |   +-- ecc-jsbn@0.1.1
| | |   +-- getpass@0.1.6
| | |   | `-- assert-plus@1.0.0
| | |   +-- jodid25519@1.0.2
| | |   +-- jsbn@0.1.0
| | |   `-- tweetnacl@0.13.3
| | +-- is-typedarray@1.0.0
| | +-- oauth-sign@0.8.2
| | +-- qs@6.2.1
| | `-- tunnel-agent@0.4.3
| +-- xml-name-validator@1.0.0
| `-- xmlhttprequest@1.8.0
+-- lazy.js@0.4.2
+-- mime@1.2.11
+-- minimatch@0.2.14
| +-- lru-cache@2.7.3
| `-- sigmund@1.0.1
+-- minimist@1.2.0
+-- mkdirp@0.5.1
| `-- minimist@0.0.8
+-- mocha@2.5.3
| +-- commander@2.3.0
| +-- diff@1.4.0
| +-- escape-string-regexp@1.0.2
| +-- glob@3.2.11
| | `-- minimatch@0.3.0
| +-- growl@1.9.2
| +-- jade@0.26.3
| | +-- commander@0.6.1
| | `-- mkdirp@0.3.0
| +-- supports-color@1.2.0
| `-- to-iso-string@0.0.2
+-- native-keymap@0.1.2
+-- object-assign@4.1.0
+-- optimist@0.3.5
| `-- wordwrap@0.0.3
+-- plist@1.2.0
| +-- base64-js@0.0.8
| +-- util-deprecate@1.0.2
| +-- xmlbuilder@4.0.0
| | `-- lodash@3.10.1
| `-- xmldom@0.1.22
+-- pty.js@0.3.0
| +-- extend@1.2.1
| `-- nan@2.2.1
+-- queue@3.0.6
+-- rimraf@2.5.4
| `-- glob@7.0.5
|   +-- fs.realpath@1.0.0
|   `-- minimatch@3.0.2
+-- sax@1.1.2
+-- semver@4.3.6
+-- sinon@1.17.5
| +-- formatio@1.1.1
| +-- lolex@1.3.2
| +-- samsam@1.1.2
| `-- util@0.10.3
+-- source-map@0.4.4
| `-- amdefine@1.0.0
+-- tslint@3.14.0
| +-- colors@1.1.2
| +-- diff@2.2.3
| +-- findup-sync@0.3.0
| +-- glob@7.0.5
| +-- optimist@0.6.1
| | `-- minimist@0.0.10
| `-- underscore.string@3.3.4
|   `-- sprintf-js@1.0.3
+-- typescript@1.8.10
+-- uglify-js@2.4.8
| +-- async@0.2.10
| +-- source-map@0.1.43
| `-- uglify-to-browserify@1.0.2
+-- underscore@1.8.3
+-- vinyl@0.4.6
| +-- clone@0.2.0
| `-- clone-stats@0.0.1
+-- vscode-debugprotocol@1.11.0
+-- vscode-nls-dev@1.1.0
| +-- glob@6.0.4
| | `-- minimatch@3.0.2
| +-- source-map@0.5.6
| +-- vinyl@1.2.0
| `-- yargs@3.32.0
|   +-- camelcase@2.1.1
|   +-- cliui@3.2.0
|   | `-- wrap-ansi@2.0.0
|   +-- os-locale@1.4.0
|   | `-- lcid@1.0.0
|   |   `-- invert-kv@1.0.0
|   +-- string-width@1.0.1
|   | +-- code-point-at@1.0.0
|   | `-- is-fullwidth-code-point@1.0.0
|   +-- window-size@0.1.4
|   `-- y18n@3.2.1
+-- vscode-textmate@2.0.1
| `-- oniguruma@6.0.1
+-- windows-mutex@0.2.0
| `-- bindings@1.2.1
+-- winreg@1.2.0
+-- xterm@1.0.0  (git+https://github.com/sourcelair/xterm.js.git#<a href="magnet:?xt=urn:btih:65b2be78315e0c83defb7d8358eb0282a18024a0">65b2be78315e0c83defb7d8358eb0282a18024a0</a>)
`-- yauzl@2.3.1
  +-- fd-slicer@1.0.1
  `-- pend@1.2.0

npm ERR! Windows_NT 10.0.10586
npm ERR! argv "P:\\nodejs\\node.exe" "P:\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! node v6.2.2
npm ERR! npm  v3.9.5
npm ERR! code ELIFECYCLE

npm ERR! fsevents@0.3.8 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the fsevents@0.3.8 install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the fsevents package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs fsevents
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls fsevents
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     X:\Programmation\NodeJS\vscode\npm-debug.log

 
[refack: fold the console output]

@bpasero
Copy link

bpasero commented Sep 1, 2016

Ping, any update?

@bnoordhuis
Copy link
Member

@bpasero If fsevents is in optionalDependencies, I think it should Just Work(TM). Speaking with both my fsevents and node-gyp maintainer hats on.

@bpasero
Copy link

bpasero commented Sep 1, 2016

@bnoordhuis we use npm-shrinkwrap and so fsevents will be compiled even if it is a optional dependency. I think npm/npm#12698 is the root cause of that.

@AaronNGray
Copy link

Can someone fix this issue ASAP !

@khowling
Copy link

+1 same issue with npm 3.10.3

@symbyte
Copy link

symbyte commented Dec 30, 2016

Happening for me as well on Windows 8.1 and npm version 3.10.9. Any updates on this?

@robertlagrant
Copy link

I'm getting this on Windows 7, npm 5.0.3.

@KhalilMohammad
Copy link

Same issue on Windows 10, npm 5.0.3

@gibfahn
Copy link
Member

gibfahn commented Jun 18, 2017

This is an npm bug, node-gyp fails to compile fsevents on Windows because it should only be installed on macOS. There is nothing node-gyp can do to fix it. optionalDependencies shouldn't be installed on windows if they're mac specific.

@bpasero mentioned that npm/npm#12698 might be the cause of the bug, please see that issue, or raise/find a newer one on https://github.com/npm/npm/ if there's a new issue with npm5.

@vietquocnguyen
Copy link

Is there a work around @gibfahn ?

@refack
Copy link
Contributor

refack commented Jun 26, 2017

@bpasero mentioned that npm/npm#12698 might be the cause of the bug, please see that issue, or raise/find a newer one on https://github.com/npm/npm/ if there's a new issue with npm5.

Vote on npm/npm#16810

@refack
Copy link
Contributor

refack commented Jun 26, 2017

Possible workaround run npm i --no-optional

@ravi005e
Copy link

still an issue, with latest npm

npm -v
5.6.0

@ManfredLange
Copy link

ManfredLange commented Jan 19, 2020

AttributeError: 'MSVSProject' object has no attribute 'items'

And again a problem with node-gyp 5.0.5 in this env:

  • node v12.13.1
  • npm 6.13.4
  • Windows 10

Update: Upgrading to node-gyp 6.1.0 didn't help. It still uses node-gyp 5.0.5

This workaround worked for me, and maybe useful to others, too.

@cclauss
Copy link
Contributor

cclauss commented Jan 19, 2020

Does the error message say items or iteritems?

@ManfredLange
Copy link

ManfredLange commented Jan 19, 2020

The error message is:

AttributeError: 'MSVSProject' object has no attribute 'items'

Note that in the screenshot it says node-gyp 5.05. However, version 6.1.0 is installed globally....

image

Update: Meanwhile I cannot reproduce the problem anymore. I do not know what change made this work. I no longer need the workaround (locking fsevents to particular version) anymore either.

@ghost
Copy link

ghost commented Feb 10, 2020

I have exactly same issue now.
Node: 12.15.0
Npm: 6.13.4
Windows: 10
image

@liuliangsir
Copy link

liuliangsir commented Sep 7, 2020

@cclauss The error message says iteritems. Here are a bunch of screenshots.

A list of globally installed packages

image

npm install

image

After setting node_gyp in ~/.npmrc configuration file

image

@cclauss cclauss added ERR! node-gyp -v < v10.x.x npm install -g npm Node Sass --> Dart Sass https://github.com/sass/node-sass/issues/2952 labels Sep 7, 2020
@cclauss
Copy link
Contributor

cclauss commented Sep 7, 2020

node-gyp is v3, not v7
Node Saas is history so please use Dart Saas instead.

@linonetwo
Copy link

linonetwo commented Mar 3, 2021

Wow its 2021, I'm having this now, win10

 File "E:\repo\TiddlyGit-Desktop\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1827, in _DictsToFolders
    for folder, contents in bucket.items():
AttributeError: 'MSVSProject' object has no attribute 'items'
× Preparing native dependencies: 0 / 1

An unhandled error has occurred inside Forge:
node-gyp failed to rebuild 'E:\repo\TiddlyGit-Desktop\node_modules\watchpack-chokidar2\node_modules\fsevents'
PS E:\repo\TiddlyGit-Desktop> npm ls fsevents
tiddly-git@0.3.6 E:\repo\TiddlyGit-Desktop
├─┬ @electron-forge/plugin-webpack@6.0.0-beta.54
│ └─┬ webpack@4.44.2
│   └─┬ watchpack@1.7.5
│     └─┬ watchpack-chokidar2@2.0.1
│       └─┬ chokidar@2.1.8
│         └── fsevents@1.2.13
└─┬ chokidar@3.5.1
  └── fsevents@2.3.2

PS E:\repo\TiddlyGit-Desktop> npm ls node-gyp
tiddly-git@0.3.6 E:\repo\TiddlyGit-Desktop
└─┬ @electron-forge/cli@6.0.0-beta.54
  └─┬ @electron-forge/core@6.0.0-beta.54
    └─┬ electron-rebuild@2.3.4
      └── node-gyp@7.1.2

PS E:\repo\TiddlyGit-Desktop> npm -v
7.6.0
PS E:\repo\TiddlyGit-Desktop> node -v
v15.11.0

@linonetwo
Copy link

npm i --no-optional solves this

@cclauss
Copy link
Contributor

cclauss commented Mar 3, 2021

Fascinating that Windows processes are trying to install the macOS-only https://www.npmjs.com/package/fsevents

This is noted in the original post at the top of this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ERR! node-gyp -v < v10.x.x npm install -g npm Node Sass --> Dart Sass https://github.com/sass/node-sass/issues/2952 Windows
Projects
None yet
Development

No branches or pull requests