videojs / video.js

Video.js - open source HTML5 video player
https://videojs.com
Other
37.87k stars 7.43k forks source link

grunt throws errors #3692

Closed hartman closed 7 years ago

hartman commented 7 years ago

Description

grunt throws me stack traces. Suspect related to browserify. Verified on clean install of modules, after rm -rf and npm cache clean.

Steps to reproduce

Explain in detail the exact steps necessary to reproduce the issue.

  1. grunt dist

    Results

    Expected

No errors

Error output

==== JS stack trace =========================================

Security context: 0x2556715cfb51 <JS Object>#0#
    1: .node [module.js:597] [pc=0x2c813b9d5044] (this=0x34de131fb419 <an Object with map 0x34cd39c24759>#1#,module=0x28459e18c1f1 <a Module with map 0x2a035341c099>#2#,filename=0x28459e189829 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>)
    2: load [module.js:487] [pc=0x2c813b53fbd2] (this=0x28459e18c1f1 <a Module with map 0x2a035341c099>#2#,filename=0x28459e189829 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>)
    3: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x2c813b53f6fd] (this=0x255671504381 <undefined>,module=0x28459e18c1f1 <a Module with map 0x2a035341c099>#2#,filename=0x28459e189829 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>)
    4: _load [module.js:438] [pc=0x2c813b534122] (this=0x34de131fb499 <JS Function Module (SharedFunctionInfo 0x34de1312bce9)>#3#,request=0x28459e1881e9 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>,parent=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,isMain=0x255671504271 <false>)
    5: require [module.js:~494] [pc=0x2c813b624d6c] (this=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,path=0x28459e1881e9 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>)
    6: require(aka require) [internal/module.js:20] [pc=0x2c813b548f46] (this=0x255671504381 <undefined>,path=0x28459e1881e9 <String[94]: /Users/djhartman/Development/video.js/node_modules/node-sass/vendor/darwin-x64-48/binding.node>)
    7: /* anonymous */ [/Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js:16] [pc=0x2c813bdcc371] (this=0x28459e171621 <an Object with map 0x2b0dc9c075e9>#5#,exports=0x28459e171621 <an Object with map 0x2b0dc9c075e9>#5#,require=0x28459e175f39 <JS Function require (SharedFunctionInfo 0x34de1315f8a1)>#6#,module=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,__filename=0x28459e16f329 <String[73]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js>,__dirname=0x28459e175ed1 <String[64]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib>)
    8: _compile [module.js:570] [pc=0x2c813b547ff0] (this=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,content=0x28459e1727b1 <Very long string[9231]>#7#,filename=0x28459e16f329 <String[73]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js>)
    9: .js [/Users/djhartman/Development/video.js/node_modules/babel-register/lib/node.js:~150] [pc=0x2c813bd12100] (this=0x34de131fb419 <an Object with map 0x34cd39c24759>#1#,m=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,filename=0x28459e16f329 <String[73]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js>)
   10: load [module.js:487] [pc=0x2c813b53fbd2] (this=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,filename=0x28459e16f329 <String[73]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js>)
   11: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x2c813b53f6fd] (this=0x255671504381 <undefined>,module=0x28459e1715d1 <a Module with map 0x2a035341c099>#4#,filename=0x28459e16f329 <String[73]: /Users/djhartman/Development/video.js/node_modules/node-sass/lib/index.js>)
   12: _load [module.js:~412] [pc=0x2c813bdaa80c] (this=0x34de131fb499 <JS Function Module (SharedFunctionInfo 0x34de1312bce9)>#3#,request=0x940feddba21 <String[9]: node-sass>,parent=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,isMain=0x255671504271 <false>)
   13: require [module.js:~494] [pc=0x2c813b624d6c] (this=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,path=0x940feddba21 <String[9]: node-sass>)
   14: require(aka require) [internal/module.js:20] [pc=0x2c813b548f46] (this=0x255671504381 <undefined>,path=0x940feddba21 <String[9]: node-sass>)
   15: /* anonymous */ [/Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js:5] [pc=0x2c813bdcb65f] (this=0x28459e1565f1 <an Object with map 0x2b0dc9c075e9>#9#,exports=0x28459e1565f1 <an Object with map 0x2b0dc9c075e9>#9#,require=0x28459e157f19 <JS Function require (SharedFunctionInfo 0x34de1315f8a1)>#10#,module=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,__filename=0x28459e1542d1 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>,__dirname=0x28459e157eb1 <String[75]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks>)
   16: _compile [module.js:570] [pc=0x2c813b547ff0] (this=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,content=0x28459e157761 <String[1023]\: 'use strict';\nvar path = require('path');\nvar eachAsync = require('each-async');\nvar assign = require('object-assign');\nvar sass = require('node-sass');\n\nmodule.exports = function (grunt) {\n\x09grunt.verbose.writeln('\\n' + sass.info + '\\n');\n\n\x09grunt.registerMultiTask('sass', 'Compile Sass to CSS', function () {\n\x09\x09eachAsync(this.files, function (el, i, next) {\n\x09\x09\x09var opts = this.options({\n\x09\x09\x09\x09precision: 10\n\x09\x09\x09});\n\n\x09\x09\x09var src = el.src[0];\n\n\x09\x09\x09if (!src || path.basename(src)[0] === '_') {\n\x09\x09\x09\x09next();\n\x09\x09\x09\x09return;\n\x09\x09\x09}\n\n\x09\x09\x09sass.render(assign({}, opts, {\n\x09\x09\x09\x09file: src,\n\x09\x09\x09\x09outFile: el.dest\n\x09\x09\x09}), function (err, res) {\n\x09\x09\x09\x09if (err) {\n\x09\x09\x09\x09\x09grunt.log.error(err.message + '\\n  ' + 'Line ' + err.line + '  Column ' + err.column + '  ' + path.relative(process.cwd(), err.file) + '\\n');\n\x09\x09\x09\x09\x09grunt.warn('');\n\x09\x09\x09\x09\x09next(err);\n\x09\x09\x09\x09\x09return;\n\x09\x09\x09\x09}\n\n\x09\x09\x09\x09grunt.file.write(el.dest, res.css);\n\n\x09\x09\x09\x09if (opts.sourceMap) {\n\x09\x09\x09\x09\x09grunt.file.write(this.options.sourceMap, res.map);\n\x09\x09\x09\x09}\n\n\x09\x09\x09\x09next();\n\x09\x09\x09});\n\x09\x09}.bind(this), this.async());\n\x09});\n};\n>,filename=0x28459e1542d1 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   17: .js [/Users/djhartman/Development/video.js/node_modules/babel-register/lib/node.js:~150] [pc=0x2c813bd12100] (this=0x34de131fb419 <an Object with map 0x34cd39c24759>#1#,m=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,filename=0x28459e1542d1 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   18: load [module.js:487] [pc=0x2c813b53fbd2] (this=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,filename=0x28459e1542d1 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   19: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x2c813b53f6fd] (this=0x255671504381 <undefined>,module=0x28459e1565a1 <a Module with map 0x2a035341c099>#8#,filename=0x28459e1542d1 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   20: _load [module.js:~412] [pc=0x2c813bdaa80c] (this=0x34de131fb499 <JS Function Module (SharedFunctionInfo 0x34de1312bce9)>#3#,request=0x28459e153491 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>,parent=0xf090a29b9a1 <a Module with map 0x2a035341c099>#11#,isMain=0x255671504271 <false>)
   21: require [module.js:~494] [pc=0x2c813b624d6c] (this=0xf090a29b9a1 <a Module with map 0x2a035341c099>#11#,path=0x28459e153491 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   22: require(aka require) [internal/module.js:20] [pc=0x2c813b548f46] (this=0x255671504381 <undefined>,path=0x28459e153491 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   23: loadTask(aka loadTask) [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:323] [pc=0x2c813b682068] (this=0x255671504381 <undefined>,filepath=0x28459e152dd9 <String[83]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks/sass.js>)
   24: /* anonymous */(aka /* anonymous */) [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:361] [pc=0x2c813b8baa07] (this=0x255671504381 <undefined>,filename=0x940feddbbd9 <String[7]: sass.js>)
   25: arguments adaptor frame: 3->1
   26: InnerArrayForEach(aka InnerArrayForEach) [native array.js:942] [pc=0x2c813b50df90] (this=0x255671504381 <undefined>,bq=0x28459e152939 <JS Function (SharedFunctionInfo 0x3729955e7a51)>#12#,br=0x255671504381 <undefined>,w=0x28459e152641 <JS Array[1]>#13#,x=1)
   27: forEach [native array.js:~954] [pc=0x2c813b8192cd] (this=0x28459e152641 <JS Array[1]>#13#,bq=0x28459e152939 <JS Function (SharedFunctionInfo 0x3729955e7a51)>#12#,br=0x255671504381 <undefined>)
   28: arguments adaptor frame: 1->2
   29: loadTasks(aka loadTasks) [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:360] [pc=0x2c813b8a9b14] (this=0x255671504381 <undefined>,tasksdir=0x28459e14e3d1 <String[75]: /Users/djhartman/Development/video.js/node_modules/gkatsev-grunt-sass/tasks>)
   30: loadNpmTasks [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:408] [pc=0x2c813b65fc3c] (this=0xf090a29bcb9 <an Object with map 0x2a03534ace29>#14#,name=0xa9a9df7c841 <String[18]: gkatsev-grunt-sass>)
   31: /* anonymous */(aka /* anonymous */) [/Users/djhartman/Development/video.js/build/grunt.js:470] [pc=0x2c813b88618d] (this=0x255671504381 <undefined>,grunt=0x1056a4b7e091 <an Object with map 0x2a03534ae2c9>#15#)
   32: /* anonymous */ [/Users/djhartman/Development/video.js/Gruntfile.js:6] [pc=0x2c813b7cdf01] (this=0x1056a4b7e091 <an Object with map 0x2a03534ae2c9>#15#,grunt=0x1056a4b7e091 <an Object with map 0x2a03534ae2c9>#15#)
   33: loadTask(aka loadTask) [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:325] [pc=0x2c813b6820ef] (this=0x255671504381 <undefined>,filepath=0xf090a29bb49 <String[50]: /Users/djhartman/Development/video.js/Gruntfile.js>)
   34: init [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/task.js:437] [pc=0x2c813b66696e] (this=0xf090a29bcb9 <an Object with map 0x2a03534ace29>#14#,tasks=0xf090a29bc99 <JS Array[1]>#16#,options=0xf090a29bc61 <an Object with map 0x2b0dc9c075e9>#17#)
   35: arguments adaptor frame: 1->2
   36: tasks [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt.js:120] [pc=0x2c813b661433] (this=0x1056a4b7e091 <an Object with map 0x2a03534ae2c9>#15#,tasks=0xf090a29bc99 <JS Array[1]>#16#,options=0xf090a29bd39 <an Object with map 0x2a03534ae2c9>#18#,done=0x255671504381 <undefined>)
   37: cli [/Users/djhartman/Development/video.js/node_modules/grunt/lib/grunt/cli.js:38] [pc=0x2c813b660936] (this=0x1056a4b7e091 <an Object with map 0x2a03534ae2c9>#15#,options=0x255671504381 <undefined>,done=0x255671504381 <undefined>)
   38: arguments adaptor frame: 0->2
   39: /* anonymous */ [/usr/local/lib/node_modules/grunt-cli/bin/grunt:44] [pc=0x2c813b548a15] (this=0x34de131fb701 <an Object with map 0x2b0dc9c075e9>#19#,exports=0x34de131fb701 <an Object with map 0x2b0dc9c075e9>#19#,require=0x34de131fb571 <JS Function require (SharedFunctionInfo 0x34de1315f8a1)>#20#,module=0x34de131fb4e1 <a Module with map 0x2a035341c099>#21#,__filename=0x34de131fb6b9 <String[47]: /usr/local/lib/node_modules/grunt-cli/bin/grunt>,__dirname=0x34de131fb691 <String[41]: /usr/local/lib/node_modules/grunt-cli/bin>)
   40: _compile [module.js:570] [pc=0x2c813b547ff0] (this=0x34de131fb4e1 <a Module with map 0x2a035341c099>#21#,content=0x34de131fbc29 <Very long string[1139]>#22#,filename=0x34de131fb6b9 <String[47]: /usr/local/lib/node_modules/grunt-cli/bin/grunt>)
   41: /* anonymous */ [module.js:~577] [pc=0x2c813b5411ab] (this=0x34de131fb419 <an Object with map 0x34cd39c24759>#1#,module=0x34de131fb4e1 <a Module with map 0x2a035341c099>#21#,filename=0x34de131fb6b9 <String[47]: /usr/local/lib/node_modules/grunt-cli/bin/grunt>)
   42: load [module.js:487] [pc=0x2c813b53fbd2] (this=0x34de131fb4e1 <a Module with map 0x2a035341c099>#21#,filename=0x34de131fb6b9 <String[47]: /usr/local/lib/node_modules/grunt-cli/bin/grunt>)
   43: tryModuleLoad(aka tryModuleLoad) [module.js:446] [pc=0x2c813b53f6fd] (this=0x255671504381 <undefined>,module=0x34de131fb4e1 <a Module with map 0x2a035341c099>#21#,filename=0x34de131fb6b9 <String[47]: /usr/local/lib/node_modules/grunt-cli/bin/grunt>)
   44: _load [module.js:438] [pc=0x2c813b534122] (this=0x34de131fb499 <JS Function Module (SharedFunctionInfo 0x34de1312bce9)>#3#,request=0x34de13153091 <String[20]: /usr/local/bin/grunt>,parent=0x255671504201 <null>,isMain=0x2556715043c1 <true>)
   45: /* anonymous */(aka /* anonymous */) [module.js:604] [pc=0x2c813b533bea] (this=0x255671504381 <undefined>)
   46: run(aka run) [bootstrap_node.js:394] [pc=0x2c813b533a70] (this=0x255671504381 <undefined>,entryFunction=0x34de13151af9 <JS Function Module.runMain (SharedFunctionInfo 0x34de1312cb29)>#23#)
   47: startup(aka startup) [bootstrap_node.js:149] [pc=0x2c813b444932] (this=0x255671504381 <undefined>)
   48: /* anonymous */(aka /* anonymous */) [bootstrap_node.js:509] [pc=0x2c813b442759] (this=0x255671504201 <null>,process=0x2556715e2729 <a process with map 0x3ba0743e2619>#24#)
=====================

==== C stack trace ===============================

 1: v8::Template::Set(v8::Local<v8::Name>, v8::Local<v8::Data>, v8::PropertyAttribute)
 2: SassTypes::Boolean::get_constructor()
 3: SassTypes::Factory::initExports(v8::Local<v8::Object>)
 4: RegisterModule(v8::Local<v8::Object>)
 5: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&)
 6: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&))
 7: v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>)
 8: v8::internal::Builtin_Impl_HandleApiCall(v8::internal::(anonymous namespace)::BuiltinArguments<(v8::internal::BuiltinExtraArguments)1>, v8::internal::Isolate*)
 9: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
10: 0x2c813b4092a7

npm ls output:

npm ls
video.js@5.12.3 /Users/djhartman/Development/video.js
├─┬ babel-cli@6.16.0
│ ├─┬ babel-core@6.17.0
│ │ ├─┬ babel-code-frame@6.16.0
│ │ │ └── js-tokens@2.0.0
│ │ ├─┬ babel-generator@6.17.0
│ │ │ ├─┬ detect-indent@3.0.1
│ │ │ │ └── repeating@1.1.3
│ │ │ └── jsesc@1.3.0
│ │ ├── babel-helpers@6.16.0
│ │ ├── babel-messages@6.8.0
│ │ ├── babel-template@6.16.0
│ │ ├─┬ babel-traverse@6.16.0
│ │ │ ├── globals@8.18.0
│ │ │ └─┬ invariant@2.2.1
│ │ │   └─┬ loose-envify@1.2.0
│ │ │     └── js-tokens@1.0.3
│ │ ├─┬ babel-types@6.16.0
│ │ │ └── to-fast-properties@1.0.2
│ │ ├── babylon@6.12.0
│ │ ├─┬ debug@2.2.0
│ │ │ └── ms@0.7.1
│ │ ├── json5@0.4.0
│ │ ├── private@0.1.6
│ │ └── shebang-regex@1.0.0
│ ├── babel-polyfill@6.16.0
│ ├─┬ bin-version-check@2.1.0
│ │ ├─┬ bin-version@1.0.4
│ │ │ └─┬ find-versions@1.2.1
│ │ │   └── semver-regex@1.0.0
│ │ └─┬ semver-truncate@1.1.2
│ │   └── semver@5.3.0
│ ├─┬ chalk@1.1.1
│ │ ├── 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
│ ├─┬ chokidar@1.6.1
│ │ ├─┬ anymatch@1.3.0
│ │ │ └─┬ micromatch@2.3.11
│ │ │   ├─┬ arr-diff@2.0.0
│ │ │   │ └── arr-flatten@1.0.1
│ │ │   ├─┬ braces@1.8.5
│ │ │   │ ├─┬ expand-range@1.8.2
│ │ │   │ │ └─┬ fill-range@2.2.3
│ │ │   │ │   ├── is-number@2.1.0
│ │ │   │ │   ├── isobject@2.1.0
│ │ │   │ │   └── randomatic@1.1.5
│ │ │   │ ├── 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
│ │ │   ├── kind-of@3.0.4
│ │ │   ├── normalize-path@2.0.1
│ │ │   ├─┬ object.omit@2.0.0
│ │ │   │ ├─┬ for-own@0.1.4
│ │ │   │ │ └── for-in@0.1.6
│ │ │   │ └── is-extendable@0.1.1
│ │ │   ├─┬ parse-glob@3.0.4
│ │ │   │ ├── glob-base@0.3.0
│ │ │   │ └── is-dotfile@1.0.2
│ │ │   └─┬ regex-cache@0.4.3
│ │ │     ├── is-equal-shallow@0.1.3
│ │ │     └── is-primitive@2.0.0
│ │ ├── async-each@1.0.1
│ │ ├─┬ fsevents@1.0.14
│ │ │ └─┬ node-pre-gyp@0.6.29
│ │ │   ├─┬ mkdirp@0.5.1
│ │ │   │ └── minimist@0.0.8
│ │ │   ├─┬ nopt@3.0.6
│ │ │   │ └── abbrev@1.0.9
│ │ │   ├─┬ npmlog@3.1.2
│ │ │   │ ├─┬ are-we-there-yet@1.1.2
│ │ │   │ │ └── delegates@1.0.0
│ │ │   │ ├── console-control-strings@1.1.0
│ │ │   │ ├─┬ gauge@2.6.0
│ │ │   │ │ ├── aproba@1.0.4
│ │ │   │ │ ├── has-color@0.1.7
│ │ │   │ │ ├── has-unicode@2.0.1
│ │ │   │ │ ├── object-assign@4.1.0
│ │ │   │ │ ├── signal-exit@3.0.0
│ │ │   │ │ ├─┬ string-width@1.0.1
│ │ │   │ │ │ ├─┬ code-point-at@1.0.0
│ │ │   │ │ │ │ └── number-is-nan@1.0.0
│ │ │   │ │ │ └── is-fullwidth-code-point@1.0.0
│ │ │   │ │ ├─┬ strip-ansi@3.0.1
│ │ │   │ │ │ └── ansi-regex@2.0.0
│ │ │   │ │ └── wide-align@1.1.0
│ │ │   │ └── set-blocking@2.0.0
│ │ │   ├─┬ rc@1.1.6
│ │ │   │ ├── deep-extend@0.4.1
│ │ │   │ ├── ini@1.3.4
│ │ │   │ ├── minimist@1.2.0
│ │ │   │ └── strip-json-comments@1.0.4
│ │ │   ├─┬ request@2.73.0
│ │ │   │ ├── aws-sign2@0.6.0
│ │ │   │ ├── aws4@1.4.1
│ │ │   │ ├─┬ bl@1.1.2
│ │ │   │ │ └── readable-stream@2.0.6
│ │ │   │ ├── caseless@0.11.0
│ │ │   │ ├─┬ combined-stream@1.0.5
│ │ │   │ │ └── delayed-stream@1.0.0
│ │ │   │ ├── extend@3.0.0
│ │ │   │ ├── forever-agent@0.6.1
│ │ │   │ ├─┬ form-data@1.0.0-rc4
│ │ │   │ │ └── async@1.5.2
│ │ │   │ ├─┬ har-validator@2.0.6
│ │ │   │ │ ├─┬ chalk@1.1.3
│ │ │   │ │ │ ├── ansi-styles@2.2.1
│ │ │   │ │ │ ├── escape-string-regexp@1.0.5
│ │ │   │ │ │ ├── has-ansi@2.0.0
│ │ │   │ │ │ └── supports-color@2.0.0
│ │ │   │ │ ├─┬ commander@2.9.0
│ │ │   │ │ │ └── graceful-readlink@1.0.1
│ │ │   │ │ ├─┬ 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
│ │ │   │ │ │ └── xtend@4.0.1
│ │ │   │ │ └─┬ 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.8.3
│ │ │   │ │   ├── 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
│ │ │   │ ├── isstream@0.1.2
│ │ │   │ ├── json-stringify-safe@5.0.1
│ │ │   │ ├─┬ mime-types@2.1.11
│ │ │   │ │ └── mime-db@1.23.0
│ │ │   │ ├── node-uuid@1.4.7
│ │ │   │ ├── oauth-sign@0.8.2
│ │ │   │ ├── qs@6.2.0
│ │ │   │ ├── stringstream@0.0.5
│ │ │   │ ├── tough-cookie@2.2.2
│ │ │   │ └── tunnel-agent@0.4.3
│ │ │   ├─┬ rimraf@2.5.3
│ │ │   │ └─┬ glob@7.0.5
│ │ │   │   ├── fs.realpath@1.0.0
│ │ │   │   ├── inflight@1.0.5
│ │ │   │   ├─┬ minimatch@3.0.2
│ │ │   │   │ └─┬ brace-expansion@1.1.5
│ │ │   │   │   ├── balanced-match@0.4.2
│ │ │   │   │   └── concat-map@0.0.1
│ │ │   │   └── path-is-absolute@1.0.0
│ │ │   ├── semver@5.2.0
│ │ │   ├─┬ tar@2.2.1
│ │ │   │ ├── block-stream@0.0.9
│ │ │   │ ├─┬ fstream@1.0.10
│ │ │   │ │ └── graceful-fs@4.1.4
│ │ │   │ └── inherits@2.0.1
│ │ │   └─┬ tar-pack@3.1.4
│ │ │     ├─┬ debug@2.2.0
│ │ │     │ └── ms@0.7.1
│ │ │     ├── fstream-ignore@1.0.5
│ │ │     ├─┬ once@1.3.3
│ │ │     │ └── wrappy@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
│ │ │     │ └── util-deprecate@1.0.2
│ │ │     └── uid-number@0.0.6
│ │ ├── glob-parent@2.0.0
│ │ ├── inherits@2.0.3
│ │ ├─┬ is-binary-path@1.0.1
│ │ │ └── binary-extensions@1.7.0
│ │ ├─┬ is-glob@2.0.1
│ │ │ └── is-extglob@1.0.0
│ │ └── readdirp@2.1.0
│ ├─┬ commander@2.9.0
│ │ └── graceful-readlink@1.0.1
│ ├── convert-source-map@1.3.0
│ ├── fs-readdir-recursive@0.1.2
│ ├─┬ glob@5.0.15
│ │ ├─┬ inflight@1.0.6
│ │ │ └── once@1.4.0
│ │ └─┬ once@1.4.0
│ │   └── wrappy@1.0.2
│ ├── lodash@4.16.4
│ ├── log-symbols@1.0.2
│ ├── output-file-sync@1.1.2
│ ├── path-exists@1.0.0
│ ├── path-is-absolute@1.0.1
│ ├─┬ request@2.75.0
│ │ ├── aws-sign2@0.6.0
│ │ ├── aws4@1.5.0
│ │ ├─┬ bl@1.1.2
│ │ │ └── readable-stream@2.0.6
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.5
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.0
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@2.0.0
│ │ │ └── asynckit@0.4.0
│ │ ├── har-validator@2.0.6
│ │ ├─┬ 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.1
│ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ ├── json-schema@0.2.3
│ │ │ │ └── verror@1.3.6
│ │ │ └─┬ sshpk@1.10.1
│ │ │   ├── asn1@0.2.3
│ │ │   ├── assert-plus@1.0.0
│ │ │   ├── bcrypt-pbkdf@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.14.3
│ │ ├── is-typedarray@1.0.0
│ │ ├── isstream@0.1.2
│ │ ├── json-stringify-safe@5.0.1
│ │ ├─┬ mime-types@2.1.12
│ │ │ └── mime-db@1.24.0
│ │ ├── node-uuid@1.4.7
│ │ ├── oauth-sign@0.8.2
│ │ ├── qs@6.2.1
│ │ ├── stringstream@0.0.5
│ │ ├── tough-cookie@2.3.1
│ │ └── tunnel-agent@0.4.3
│ ├── slash@1.0.0
│ ├── source-map@0.5.6
│ └─┬ v8flags@2.0.11
│   └── user-home@1.1.1
├─┬ babel-plugin-inline-json@1.1.1
│ └── resolve@1.1.7
├── babel-plugin-transform-es3-member-expression-literals@6.8.0
├── babel-plugin-transform-es3-property-literals@6.8.0
├── babel-plugin-transform-runtime@6.15.0
├─┬ babel-preset-es2015@6.16.0
│ ├── babel-plugin-check-es2015-constants@6.8.0
│ ├── babel-plugin-transform-es2015-arrow-functions@6.8.0
│ ├── babel-plugin-transform-es2015-block-scoped-functions@6.8.0
│ ├── babel-plugin-transform-es2015-block-scoping@6.15.0
│ ├─┬ babel-plugin-transform-es2015-classes@6.14.0
│ │ ├── babel-helper-define-map@6.9.0
│ │ ├── babel-helper-function-name@6.8.0
│ │ ├── babel-helper-optimise-call-expression@6.8.0
│ │ └── babel-helper-replace-supers@6.16.0
│ ├── babel-plugin-transform-es2015-computed-properties@6.8.0
│ ├── babel-plugin-transform-es2015-destructuring@6.16.0
│ ├── babel-plugin-transform-es2015-duplicate-keys@6.8.0
│ ├── babel-plugin-transform-es2015-for-of@6.8.0
│ ├── babel-plugin-transform-es2015-function-name@6.9.0
│ ├── babel-plugin-transform-es2015-literals@6.8.0
│ ├── babel-plugin-transform-es2015-modules-amd@6.8.0
│ ├─┬ babel-plugin-transform-es2015-modules-commonjs@6.16.0
│ │ └── babel-plugin-transform-strict-mode@6.11.3
│ ├─┬ babel-plugin-transform-es2015-modules-systemjs@6.14.0
│ │ └── babel-helper-hoist-variables@6.8.0
│ ├── babel-plugin-transform-es2015-modules-umd@6.12.0
│ ├── babel-plugin-transform-es2015-object-super@6.8.0
│ ├─┬ babel-plugin-transform-es2015-parameters@6.17.0
│ │ ├── babel-helper-call-delegate@6.8.0
│ │ └── babel-helper-get-function-arity@6.8.0
│ ├── babel-plugin-transform-es2015-shorthand-properties@6.8.0
│ ├── babel-plugin-transform-es2015-spread@6.8.0
│ ├─┬ babel-plugin-transform-es2015-sticky-regex@6.8.0
│ │ └── babel-helper-regex@6.9.0
│ ├── babel-plugin-transform-es2015-template-literals@6.8.0
│ ├── babel-plugin-transform-es2015-typeof-symbol@6.8.0
│ ├─┬ babel-plugin-transform-es2015-unicode-regex@6.11.0
│ │ └─┬ regexpu-core@2.0.0
│ │   ├── regenerate@1.3.1
│ │   ├── regjsgen@0.2.0
│ │   └─┬ regjsparser@0.1.5
│ │     └── jsesc@0.5.0
│ └── babel-plugin-transform-regenerator@6.16.1
├─┬ babel-register@6.16.3
│ ├── core-js@2.4.1
│ ├─┬ home-or-tmp@1.0.0
│ │ └── os-tmpdir@1.0.2
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ └── source-map-support@0.4.5
├─┬ babel-runtime@6.11.6
│ └── regenerator-runtime@0.9.5
├─┬ babelify@7.3.0
│ └── object-assign@4.1.0
├─┬ blanket@1.2.3
│ ├── acorn@1.2.2
│ ├─┬ falafel@1.2.0
│ │ └── isarray@0.0.1
│ ├── foreach@2.0.5
│ ├── isarray@0.0.1
│ ├── object-keys@1.0.11
│ └── xtend@4.0.1
├── UNMET PEER DEPENDENCY browserify@>=10 <14
├─┬ browserify-derequire@0.9.4
│ ├─┬ derequire@2.0.3
│ │ ├── acorn@0.12.0
│ │ ├─┬ escope@2.0.7
│ │ │ ├─┬ es6-weak-map@0.1.4
│ │ │ │ ├── es6-iterator@0.1.3
│ │ │ │ └── es6-symbol@2.0.1
│ │ │ ├── esrecurse@1.2.0
│ │ │ ├── estraverse@1.9.3
│ │ │ └── util-extend@1.0.3
│ │ ├─┬ through2@2.0.1
│ │ │ └── readable-stream@2.0.6
│ │ └─┬ 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.2
│ │   │ ├── code-point-at@1.0.1
│ │   │ └── is-fullwidth-code-point@1.0.0
│ │   ├── window-size@0.1.4
│ │   └── y18n@3.2.1
│ └─┬ through2@1.1.1
│   └─┬ readable-stream@1.1.14
│     ├── core-util-is@1.0.2
│     └── isarray@0.0.1
├─┬ browserify-istanbul@0.2.1
│ ├─┬ istanbul@0.3.22
│ │ ├── abbrev@1.0.9
│ │ ├─┬ escodegen@1.7.1
│ │ │ ├── esprima@1.2.5
│ │ │ ├─┬ optionator@0.5.0
│ │ │ │ ├── fast-levenshtein@1.0.7
│ │ │ │ ├── levn@0.2.5
│ │ │ │ └── wordwrap@0.0.3
│ │ │ └── source-map@0.2.0
│ │ ├── esprima@2.5.0
│ │ ├─┬ fileset@0.2.1
│ │ │ └── minimatch@2.0.10
│ │ ├─┬ handlebars@4.0.5
│ │ │ └── source-map@0.4.4
│ │ ├─┬ js-yaml@3.6.1
│ │ │ ├─┬ argparse@1.0.9
│ │ │ │ └── sprintf-js@1.0.3
│ │ │ └── esprima@2.7.3
│ │ ├── nopt@3.0.6
│ │ ├── supports-color@3.1.2
│ │ └── wordwrap@1.0.0
│ ├─┬ minimatch@2.0.10
│ │ └─┬ brace-expansion@1.1.6
│ │   ├── balanced-match@0.4.2
│ │   └── concat-map@0.0.1
│ └── through@2.3.8
├─┬ browserify-versionify@1.0.6
│ ├── find-root@0.1.2
│ └─┬ through2@0.6.3
│   └─┬ readable-stream@1.0.34
│     └── isarray@0.0.1
├─┬ bundle-collapser@1.2.1
│ ├─┬ browser-pack@5.0.1
│ │ ├─┬ combine-source-map@0.6.1
│ │ │ ├── convert-source-map@1.1.3
│ │ │ ├─┬ inline-source-map@0.5.0
│ │ │ │ └── source-map@0.4.4
│ │ │ ├── lodash.memoize@3.0.4
│ │ │ └── source-map@0.4.4
│ │ ├── defined@1.0.0
│ │ ├─┬ JSONStream@1.2.1
│ │ │ └── jsonparse@1.2.0
│ │ └── umd@3.0.1
│ ├─┬ browser-unpack@1.1.1
│ │ └── acorn@2.7.0
│ ├─┬ concat-stream@1.5.2
│ │ ├── readable-stream@2.0.6
│ │ └── typedarray@0.0.6
│ ├── minimist@1.2.0
│ └─┬ through2@2.0.1
│   └─┬ readable-stream@2.0.6
│     ├── isarray@1.0.0
│     ├── process-nextick-args@1.0.7
│     └── util-deprecate@1.0.2
├─┬ chg@0.3.2
│ ├── commander@2.1.0
│ ├── moment@2.5.1
│ ├─┬ prompt@0.2.14
│ │ ├── pkginfo@0.4.0
│ │ ├─┬ read@1.0.7
│ │ │ └── mute-stream@0.0.6
│ │ ├── revalidator@0.1.8
│ │ ├─┬ utile@0.2.1
│ │ │ ├── async@0.2.10
│ │ │ ├── i@0.3.5
│ │ │ └── ncp@0.4.2
│ │ └─┬ winston@0.8.3
│ │   ├── async@0.2.10
│ │   ├── cycle@1.0.3
│ │   ├── eyes@0.1.8
│ │   ├── pkginfo@0.3.1
│ │   └── stack-trace@0.0.9
│ ├── semver@2.2.1
│ └── shelljs@0.2.6
├─┬ conventional-changelog-cli@1.2.0
│ ├── add-stream@1.0.0
│ ├─┬ conventional-changelog@1.1.0
│ │ ├── conventional-changelog-angular@1.3.0
│ │ ├── conventional-changelog-atom@0.1.0
│ │ ├── conventional-changelog-codemirror@0.1.0
│ │ ├─┬ conventional-changelog-core@1.5.0
│ │ │ ├─┬ conventional-changelog-writer@1.4.1
│ │ │ │ ├─┬ conventional-commits-filter@1.0.0
│ │ │ │ │ ├── is-subset@0.1.1
│ │ │ │ │ └── modify-values@1.0.0
│ │ │ │ ├── semver@5.3.0
│ │ │ │ ├── split@1.0.0
│ │ │ │ └─┬ through2@2.0.1
│ │ │ │   └── readable-stream@2.0.6
│ │ │ ├─┬ conventional-commits-parser@1.3.0
│ │ │ │ ├─┬ is-text-path@1.0.1
│ │ │ │ │ └── text-extensions@1.3.3
│ │ │ │ ├─┬ split2@2.1.0
│ │ │ │ │ └─┬ through2@2.0.1
│ │ │ │ │   └── readable-stream@2.0.6
│ │ │ │ ├─┬ through2@2.0.1
│ │ │ │ │ └── readable-stream@2.0.6
│ │ │ │ └── trim-off-newlines@1.0.1
│ │ │ ├─┬ get-pkg-repo@1.3.0
│ │ │ │ ├── parse-github-repo-url@1.3.0
│ │ │ │ └─┬ through2@2.0.1
│ │ │ │   └── readable-stream@2.0.6
│ │ │ ├─┬ git-raw-commits@1.1.2
│ │ │ │ ├── dargs@4.1.0
│ │ │ │ ├─┬ lodash.template@4.4.0
│ │ │ │ │ ├── lodash._reinterpolate@3.0.0
│ │ │ │ │ └── lodash.templatesettings@4.1.0
│ │ │ │ └─┬ through2@2.0.1
│ │ │ │   └── readable-stream@2.0.6
│ │ │ ├─┬ git-remote-origin-url@2.0.0
│ │ │ │ ├── gitconfiglocal@1.0.0
│ │ │ │ └── pify@2.3.0
│ │ │ ├─┬ git-semver-tags@1.1.2
│ │ │ │ └── semver@5.3.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
│ │ │ │ │ └─┬ strip-bom@2.0.0
│ │ │ │ │   └── is-utf8@0.2.1
│ │ │ │ └── path-type@1.1.0
│ │ │ └─┬ through2@2.0.1
│ │ │   └── readable-stream@2.0.6
│ │ ├── conventional-changelog-ember@0.2.2
│ │ ├── conventional-changelog-eslint@0.1.0
│ │ ├── conventional-changelog-express@0.1.0
│ │ ├── conventional-changelog-jquery@0.1.0
│ │ ├── conventional-changelog-jscs@0.1.0
│ │ └── conventional-changelog-jshint@0.1.0
│ ├─┬ meow@3.7.0
│ │ ├── camelcase-keys@2.1.0
│ │ ├── decamelize@1.2.0
│ │ ├─┬ loud-rejection@1.6.0
│ │ │ ├─┬ currently-unhandled@0.4.1
│ │ │ │ └── array-find-index@1.0.2
│ │ │ └── signal-exit@3.0.1
│ │ ├── 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.4
│ │ ├── read-pkg-up@1.0.1
│ │ ├─┬ redent@1.0.0
│ │ │ └── strip-indent@1.0.1
│ │ └── trim-newlines@1.0.0
│ └─┬ tempfile@1.1.1
│   └── uuid@2.0.3
├─┬ conventional-changelog-videojs@3.0.0
│ ├─┬ compare-func@1.3.2
│ │ ├── array-ify@1.0.0
│ │ └─┬ dot-prop@3.0.0
│ │   └── is-obj@1.0.1
│ ├── github-url-from-git@1.4.0
│ └── q@1.4.1
├── es5-shim@4.5.9
├── es6-shim@0.35.1
├─┬ ghooks@1.3.2
│ ├─┬ execa@0.4.0
│ │ ├─┬ cross-spawn-async@2.2.4
│ │ │ └─┬ lru-cache@4.0.1
│ │ │   ├── pseudomap@1.0.2
│ │ │   └── yallist@2.0.0
│ │ ├── is-stream@1.1.0
│ │ ├── npm-run-path@1.0.0
│ │ ├── path-key@1.0.0
│ │ └── strip-eof@1.0.0
│ ├─┬ findup@0.1.5
│ │ └── commander@2.1.0
│ ├─┬ lodash.clone@4.3.2
│ │ └── lodash._baseclone@4.5.7
│ ├── manage-path@2.0.0
│ ├─┬ opt-cli@1.5.1
│ │ └── spawn-command@0.0.2-1
│ ├─┬ path-exists@2.1.0
│ │ └─┬ pinkie-promise@2.0.1
│ │   └── pinkie@2.0.4
│ └── spawn-command@0.0.2
├─┬ gkatsev-grunt-sass@1.1.1
│ ├─┬ each-async@1.1.1
│ │ ├── onetime@1.1.0
│ │ └── set-immediate-shim@1.0.1
│ └─┬ node-sass@3.4.2
│   ├── async-foreach@0.1.3
│   ├─┬ cross-spawn@2.2.3
│   │ └── spawn-sync@1.0.15
│   ├─┬ 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
│   │   └─┬ minimatch@0.2.14
│   │     └── lru-cache@2.7.3
│   ├── get-stdin@4.0.1
│   ├── nan@2.4.0
│   ├─┬ node-gyp@3.4.0
│   │ ├── fstream@1.0.10
│   │ ├─┬ glob@7.1.1
│   │ │ └── once@1.4.0
│   │ ├─┬ npmlog@3.1.2
│   │ │ ├─┬ are-we-there-yet@1.1.2
│   │ │ │ └── delegates@1.0.0
│   │ │ ├── console-control-strings@1.1.0
│   │ │ ├─┬ gauge@2.6.0
│   │ │ │ ├── aproba@1.0.4
│   │ │ │ ├── has-color@0.1.7
│   │ │ │ ├── has-unicode@2.0.1
│   │ │ │ └── wide-align@1.1.0
│   │ │ └── set-blocking@2.0.0
│   │ ├── osenv@0.1.3
│   │ ├─┬ path-array@1.0.1
│   │ │ └── array-index@1.0.0
│   │ └─┬ tar@2.2.1
│   │   └── block-stream@0.0.9
│   ├─┬ npmconf@2.1.2
│   │ ├─┬ config-chain@1.1.11
│   │ │ └── proto-list@1.2.4
│   │ ├── ini@1.3.4
│   │ ├── once@1.3.3
│   │ └── uid-number@0.0.5
│   └─┬ sass-graph@2.1.2
│     ├─┬ glob@7.1.1
│     │ └── once@1.4.0
│     └─┬ yargs@4.8.1
│       ├── get-caller-file@1.0.2
│       ├── require-directory@2.1.1
│       ├── require-main-filename@1.0.1
│       ├── which-module@1.0.0
│       ├── window-size@0.2.0
│       └─┬ yargs-parser@2.4.1
│         └── camelcase@3.0.0
├─┬ global@4.3.0
│ ├─┬ min-document@2.19.0
│ │ └── dom-walk@0.1.1
│ └── process@0.5.2
├─┬ grunt@0.4.5
│ ├── async@0.1.22
│ ├── coffee-script@1.3.3
│ ├── colors@0.6.2
│ ├── 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
│ │ │   └── lru-cache@2.7.3
│ │ └── 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
│ ├─┬ minimatch@0.2.14
│ │ ├── lru-cache@2.7.3
│ │ └── sigmund@1.0.1
│ ├── nopt@1.0.10
│ ├── rimraf@2.2.8
│ ├── underscore.string@2.2.1
│ └── which@1.0.9
├─┬ grunt-accessibility@4.2.0
│ └─┬ access-sniff@2.4.4
│   ├─┬ axios@0.9.1
│   │ └─┬ follow-redirects@0.0.7
│   │   └── stream-consume@0.1.0
│   ├── HTML_CodeSniffer@2.0.7 (git://github.com/squizlabs/HTML_CodeSniffer.git#d209ce54876657858a8a01528ad812cd234f37f0)
│   ├─┬ phantomjs-prebuilt@2.1.13
│   │ ├── es6-promise@4.0.5
│   │ ├─┬ extract-zip@1.5.0
│   │ │ ├─┬ concat-stream@1.5.0
│   │ │ │ └── readable-stream@2.0.6
│   │ │ ├── debug@0.7.4
│   │ │ ├─┬ mkdirp@0.5.0
│   │ │ │ └── minimist@0.0.8
│   │ │ └─┬ yauzl@2.4.1
│   │ │   └─┬ fd-slicer@1.0.1
│   │ │     └── pend@1.2.0
│   │ ├─┬ fs-extra@0.30.0
│   │ │ ├── jsonfile@2.4.0
│   │ │ └── klaw@1.3.0
│   │ ├── hasha@2.2.0
│   │ ├── kew@0.7.0
│   │ ├─┬ request@2.74.0
│   │ │ └─┬ form-data@1.0.1
│   │ │   └── async@2.1.2
│   │ └─┬ request-progress@2.0.1
│   │   └── throttleit@1.0.0
│   ├── underscore@1.8.3
│   └── validator@5.7.0
├── grunt-babel@6.0.0
├─┬ grunt-banner@0.4.0
│ └─┬ chalk@1.0.0
│   ├─┬ has-ansi@1.0.3
│   │ └── ansi-regex@1.1.1
│   ├── strip-ansi@2.0.1
│   └── supports-color@1.3.1
├─┬ grunt-browserify@3.5.1
│ ├── async@0.9.2
│ ├─┬ browserify@9.0.8
│ │ ├── assert@1.3.0
│ │ ├─┬ browser-pack@4.0.4
│ │ │ ├─┬ combine-source-map@0.3.0
│ │ │ │ ├── convert-source-map@0.3.5
│ │ │ │ ├─┬ inline-source-map@0.3.1
│ │ │ │ │ └── source-map@0.3.0
│ │ │ │ └── source-map@0.1.43
│ │ │ ├── defined@1.0.0
│ │ │ ├── JSONStream@1.2.1
│ │ │ └─┬ through2@0.5.1
│ │ │   └── readable-stream@1.0.34
│ │ ├── browser-resolve@1.11.2
│ │ ├─┬ browserify-zlib@0.1.4
│ │ │ └── pako@0.2.9
│ │ ├─┬ buffer@3.6.0
│ │ │ ├── base64-js@0.0.8
│ │ │ └── ieee754@1.1.8
│ │ ├── builtins@0.0.7
│ │ ├── commondir@0.0.1
│ │ ├── concat-stream@1.4.10
│ │ ├─┬ console-browserify@1.1.0
│ │ │ └── date-now@0.1.4
│ │ ├── constants-browserify@0.0.1
│ │ ├─┬ crypto-browserify@3.11.0
│ │ │ ├─┬ browserify-cipher@1.0.0
│ │ │ │ ├─┬ browserify-aes@1.0.6
│ │ │ │ │ └── buffer-xor@1.0.3
│ │ │ │ ├─┬ browserify-des@1.0.0
│ │ │ │ │ └─┬ des.js@1.0.0
│ │ │ │ │   └── minimalistic-assert@1.0.0
│ │ │ │ └── evp_bytestokey@1.0.0
│ │ │ ├─┬ browserify-sign@4.0.0
│ │ │ │ ├── bn.js@4.11.6
│ │ │ │ ├── browserify-rsa@4.0.1
│ │ │ │ ├─┬ elliptic@6.3.2
│ │ │ │ │ ├── brorand@1.0.6
│ │ │ │ │ └── hash.js@1.0.3
│ │ │ │ └─┬ parse-asn1@5.0.0
│ │ │ │   └── asn1.js@4.8.1
│ │ │ ├── create-ecdh@4.0.0
│ │ │ ├─┬ create-hash@1.1.2
│ │ │ │ ├── cipher-base@1.0.3
│ │ │ │ └── ripemd160@1.0.1
│ │ │ ├── create-hmac@1.1.4
│ │ │ ├─┬ diffie-hellman@5.0.2
│ │ │ │ └── miller-rabin@4.0.0
│ │ │ ├── pbkdf2@3.0.9
│ │ │ ├── public-encrypt@4.0.0
│ │ │ └── randombytes@2.0.3
│ │ ├── deep-equal@1.0.1
│ │ ├── defined@0.0.0
│ │ ├── deps-sort@1.3.9
│ │ ├── domain-browser@1.1.7
│ │ ├─┬ duplexer2@0.0.2
│ │ │ └─┬ readable-stream@1.1.14
│ │ │   └── isarray@0.0.1
│ │ ├── events@1.0.2
│ │ ├─┬ glob@4.5.3
│ │ │ ├── minimatch@2.0.10
│ │ │ └── once@1.4.0
│ │ ├── has@1.0.1
│ │ ├─┬ http-browserify@1.7.0
│ │ │ └── Base64@0.2.1
│ │ ├── https-browserify@0.0.1
│ │ ├─┬ insert-module-globals@6.6.3
│ │ │ ├─┬ concat-stream@1.4.10
│ │ │ │ └─┬ readable-stream@1.1.14
│ │ │ │   └── isarray@0.0.1
│ │ │ ├── is-buffer@1.1.4
│ │ │ ├─┬ lexical-scope@1.2.0
│ │ │ │ └── astw@2.0.0
│ │ │ └── process@0.11.9
│ │ ├── isarray@0.0.1
│ │ ├─┬ JSONStream@0.10.0
│ │ │ └── jsonparse@0.0.5
│ │ ├─┬ labeled-stream-splicer@1.0.2
│ │ │ ├── isarray@0.0.1
│ │ │ └─┬ stream-splicer@1.3.2
│ │ │   ├── isarray@0.0.1
│ │ │   └── readable-stream@1.1.14
│ │ ├─┬ module-deps@3.9.1
│ │ │ ├── concat-stream@1.4.10
│ │ │ ├── detective@4.3.1
│ │ │ ├─┬ readable-stream@1.1.14
│ │ │ │ └── isarray@0.0.1
│ │ │ └─┬ stream-combiner2@1.0.2
│ │ │   └─┬ through2@0.5.1
│ │ │     ├─┬ readable-stream@1.0.34
│ │ │     │ └── isarray@0.0.1
│ │ │     └── xtend@3.0.0
│ │ ├── os-browserify@0.1.2
│ │ ├─┬ parents@1.0.1
│ │ │ └── path-platform@0.11.15
│ │ ├── path-browserify@0.0.0
│ │ ├── process@0.10.1
│ │ ├── punycode@1.2.4
│ │ ├── querystring-es3@0.2.1
│ │ ├─┬ read-only-stream@1.1.1
│ │ │ ├─┬ readable-stream@1.1.14
│ │ │ │ └── isarray@0.0.1
│ │ │ └─┬ readable-wrap@1.0.0
│ │ │   └─┬ readable-stream@1.1.14
│ │ │     └── isarray@0.0.1
│ │ ├── readable-stream@1.1.14
│ │ ├── shallow-copy@0.0.1
│ │ ├─┬ shasum@1.0.2
│ │ │ ├── json-stable-stringify@0.0.1
│ │ │ └── sha.js@2.4.5
│ │ ├── shell-quote@0.0.1
│ │ ├─┬ stream-browserify@1.0.0
│ │ │ └─┬ readable-stream@1.1.14
│ │ │   └── isarray@0.0.1
│ │ ├── string_decoder@0.10.31
│ │ ├── subarg@1.0.0
│ │ ├─┬ syntax-error@1.1.6
│ │ │ └── acorn@2.7.0
│ │ ├─┬ timers-browserify@1.4.2
│ │ │ └── process@0.11.9
│ │ ├── tty-browserify@0.0.0
│ │ ├─┬ url@0.10.3
│ │ │ ├── punycode@1.3.2
│ │ │ └── querystring@0.2.0
│ │ ├─┬ vm-browserify@0.0.4
│ │ │ └── indexof@0.0.1
│ │ └── xtend@3.0.0
│ ├─┬ glob@4.5.3
│ │ ├── minimatch@2.0.10
│ │ └── once@1.4.0
│ ├── lodash@3.10.1
│ └─┬ watchify@2.6.2
│   ├─┬ chokidar@0.12.6
│   │ ├── async-each@0.1.6
│   │ ├── fsevents@0.3.8
│   │ └─┬ readdirp@1.3.0
│   │   ├── graceful-fs@2.0.3
│   │   └─┬ minimatch@0.2.14
│   │     └── lru-cache@2.7.3
│   └─┬ through2@0.5.1
│     ├─┬ readable-stream@1.0.34
│     │ └── isarray@0.0.1
│     └── xtend@3.0.0
├─┬ grunt-cli@0.1.13
│ ├── nopt@1.0.10
│ └── resolve@0.3.1
├─┬ grunt-concurrent@2.3.1
│ ├── arrify@1.0.1
│ ├── async@1.5.2
│ ├─┬ indent-string@2.1.0
│ │ └── repeating@2.0.1
│ └─┬ pad-stream@1.2.0
│   ├─┬ pumpify@1.3.5
│   │ ├─┬ duplexify@3.4.5
│   │ │ ├─┬ end-of-stream@1.0.0
│   │ │ │ └── once@1.3.3
│   │ │ └── stream-shift@1.0.0
│   │ └─┬ pump@1.0.1
│   │   ├─┬ end-of-stream@1.1.0
│   │   │ └── once@1.3.3
│   │   └── once@1.4.0
│   ├── repeating@2.0.1
│   ├── split2@1.1.1
│   └─┬ through2@2.0.1
│     └── readable-stream@2.0.6
├── grunt-contrib-clean@0.4.1
├─┬ grunt-contrib-concat@0.5.1
│ ├─┬ chalk@0.5.1
│ │ ├── ansi-styles@1.1.0
│ │ ├─┬ has-ansi@0.1.0
│ │ │ └── ansi-regex@0.2.1
│ │ ├── strip-ansi@0.3.0
│ │ └── supports-color@0.2.0
│ └─┬ source-map@0.3.0
│   └── amdefine@1.0.0
├─┬ grunt-contrib-connect@0.7.1
│ ├── async@0.2.10
│ ├─┬ connect@2.13.1
│ │ ├── batch@0.5.0
│ │ ├── buffer-crc32@0.2.1
│ │ ├── bytes@0.2.1
│ │ ├── compressible@1.0.0
│ │ ├── cookie@0.1.0
│ │ ├── cookie-signature@1.0.1
│ │ ├── debug@0.8.1
│ │ ├── fresh@0.2.0
│ │ ├── methods@0.1.0
│ │ ├─┬ multiparty@2.2.0
│ │ │ ├─┬ readable-stream@1.1.14
│ │ │ │ └── isarray@0.0.1
│ │ │ └─┬ stream-counter@0.2.0
│ │ │   └─┬ readable-stream@1.1.14
│ │ │     └── isarray@0.0.1
│ │ ├── negotiator@0.3.0
│ │ ├── pause@0.0.1
│ │ ├── qs@0.6.6
│ │ ├── raw-body@1.1.3
│ │ ├─┬ send@0.1.4
│ │ │ └── range-parser@0.0.4
│ │ └── uid2@0.0.3
│ ├── connect-livereload@0.3.2
│ ├── open@0.0.4
│ └─┬ portscanner@0.2.2
│   └── async@0.1.15
├─┬ grunt-contrib-copy@0.8.2
│ └── file-sync-cmp@0.1.1
├─┬ grunt-contrib-cssmin@1.0.2
│ ├─┬ clean-css@3.4.20
│ │ ├── commander@2.8.1
│ │ └── source-map@0.4.4
│ └─┬ maxmin@1.1.0
│   ├── gzip-size@1.0.0
│   └── pretty-bytes@1.0.4
├─┬ grunt-contrib-uglify@0.11.1
│ ├─┬ maxmin@2.1.0
│ │ ├─┬ gzip-size@3.0.0
│ │ │ └── duplexer@0.1.1
│ │ └── pretty-bytes@3.0.1
│ ├─┬ uglify-js@2.6.4
│ │ ├── async@0.2.10
│ │ └─┬ yargs@3.10.0
│ │   ├── camelcase@1.2.1
│ │   ├─┬ cliui@2.1.0
│ │   │ └── wordwrap@0.0.2
│ │   └── window-size@0.1.0
│ └── uri-path@1.0.0
├─┬ grunt-contrib-watch@0.1.4
│ └─┬ gaze@0.2.2
│   ├── async@0.1.22
│   ├─┬ glob@3.1.21
│   │ ├── graceful-fs@1.2.3
│   │ └── inherits@1.0.2
│   ├── lodash@0.10.0
│   └─┬ minimatch@0.2.14
│     └── lru-cache@2.7.3
├─┬ grunt-coveralls@1.0.1
│ └─┬ coveralls@2.11.14
│   ├── lcov-parse@0.0.10
│   └── log-driver@1.2.5
├─┬ grunt-fastly@0.1.5
│ ├── async@0.2.10
│ └─┬ fastly@1.2.1
│   └─┬ request@2.12.0
│     ├─┬ form-data@0.0.3
│     │ ├── async@0.1.9
│     │ └─┬ combined-stream@0.0.3
│     │   └── delayed-stream@0.0.5
│     └── mime@1.2.7
├─┬ grunt-github-releaser@0.1.18
│ ├── async@0.2.10
│ ├─┬ request@2.33.0
│ │ ├── aws-sign2@0.5.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
│ │ ├── mime@1.2.11
│ │ ├── oauth-sign@0.3.0
│ │ ├── qs@0.6.6
│ │ └── tunnel-agent@0.3.0
│ └── underscore@1.5.2
├─┬ grunt-karma@2.0.0
│ └── lodash@3.10.1
├─┬ grunt-shell@2.0.0
│ └─┬ npm-run-path@2.0.2
│   └── path-key@2.0.1
├─┬ grunt-version@0.3.3
│ └── semver@4.3.6
├── grunt-videojs-languages@0.0.4
├─┬ grunt-zip@0.10.2
│ ├── grunt-retro@0.6.4
│ └── node-zip@0.0.2
├─┬ karma@1.3.0
│ ├── bluebird@3.4.6
│ ├─┬ body-parser@1.15.2
│ │ ├── bytes@2.4.0
│ │ ├── content-type@1.0.2
│ │ ├── depd@1.1.0
│ │ ├─┬ http-errors@1.5.0
│ │ │ ├── inherits@2.0.1
│ │ │ ├── setprototypeof@1.0.1
│ │ │ └── statuses@1.3.0
│ │ ├── iconv-lite@0.4.13
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── qs@6.2.0
│ │ ├─┬ raw-body@2.1.7
│ │ │ └── unpipe@1.0.0
│ │ └─┬ type-is@1.6.13
│ │   └── media-typer@0.3.0
│ ├── colors@1.1.2
│ ├── combine-lists@1.0.1
│ ├─┬ connect@3.5.0
│ │ ├─┬ finalhandler@0.5.0
│ │ │ └── escape-html@1.0.3
│ │ ├── parseurl@1.3.1
│ │ └── utils-merge@1.0.0
│ ├── di@0.0.1
│ ├─┬ dom-serialize@2.2.1
│ │ ├── custom-event@1.0.1
│ │ ├── ent@2.2.0
│ │ └── void-elements@2.0.1
│ ├─┬ expand-braces@0.1.2
│ │ ├── array-slice@0.2.3
│ │ ├── array-unique@0.2.1
│ │ └─┬ braces@0.1.5
│ │   └─┬ expand-range@0.1.1
│ │     ├── is-number@0.1.1
│ │     └── repeat-string@0.2.2
│ ├─┬ glob@7.1.1
│ │ ├── fs.realpath@1.0.0
│ │ └── once@1.4.0
│ ├── graceful-fs@4.1.9
│ ├─┬ http-proxy@1.15.1
│ │ ├── eventemitter3@1.2.0
│ │ └── requires-port@1.0.0
│ ├── isbinaryfile@3.0.1
│ ├── lodash@3.10.1
│ ├─┬ log4js@0.6.38
│ │ └─┬ readable-stream@1.0.34
│ │   └── isarray@0.0.1
│ ├── mime@1.3.4
│ ├── minimatch@3.0.3
│ ├─┬ optimist@0.6.1
│ │ ├── minimist@0.0.10
│ │ └── wordwrap@0.0.3
│ ├── qjobs@1.1.5
│ ├── range-parser@1.2.0
│ ├─┬ rimraf@2.5.4
│ │ └─┬ glob@7.1.1
│ │   └── once@1.4.0
│ ├─┬ socket.io@1.4.7
│ │ ├─┬ engine.io@1.6.10
│ │ │ ├─┬ accepts@1.1.4
│ │ │ │ ├─┬ mime-types@2.0.14
│ │ │ │ │ └── mime-db@1.12.0
│ │ │ │ └── negotiator@0.4.9
│ │ │ ├── base64id@0.1.0
│ │ │ ├─┬ engine.io-parser@1.2.4
│ │ │ │ ├── after@0.8.1
│ │ │ │ ├── arraybuffer.slice@0.0.6
│ │ │ │ ├── base64-arraybuffer@0.1.2
│ │ │ │ ├── blob@0.0.4
│ │ │ │ ├─┬ has-binary@0.1.6
│ │ │ │ │ └── isarray@0.0.1
│ │ │ │ └── utf8@2.1.0
│ │ │ └─┬ ws@1.0.1
│ │ │   ├── options@0.0.6
│ │ │   └── ultron@1.0.2
│ │ ├─┬ has-binary@0.1.7
│ │ │ └── isarray@0.0.1
│ │ ├─┬ socket.io-adapter@0.4.0
│ │ │ └─┬ socket.io-parser@2.2.2
│ │ │   ├── debug@0.7.4
│ │ │   ├── isarray@0.0.1
│ │ │   └── json3@3.2.6
│ │ ├─┬ socket.io-client@1.4.6
│ │ │ ├── backo2@1.0.2
│ │ │ ├── component-bind@1.0.0
│ │ │ ├── component-emitter@1.2.0
│ │ │ ├─┬ engine.io-client@1.6.9
│ │ │ │ ├── component-inherit@0.0.3
│ │ │ │ ├── has-cors@1.1.0
│ │ │ │ ├── parsejson@0.0.1
│ │ │ │ ├── parseqs@0.0.2
│ │ │ │ ├── xmlhttprequest-ssl@1.5.1
│ │ │ │ └── yeast@0.1.2
│ │ │ ├── object-component@0.0.3
│ │ │ ├─┬ parseuri@0.0.4
│ │ │ │ └─┬ better-assert@1.0.2
│ │ │ │   └── callsite@1.0.0
│ │ │ └── to-array@0.1.4
│ │ └─┬ socket.io-parser@2.2.6
│ │   ├── benchmark@1.0.0
│ │   ├── component-emitter@1.1.2
│ │   ├── isarray@0.0.1
│ │   └── json3@3.3.2
│ ├── tmp@0.0.28
│ └─┬ useragent@2.1.9
│   └── lru-cache@2.2.4
├─┬ karma-browserify@5.1.0
│ ├── hat@0.0.3
│ ├── js-string-escape@1.0.1
│ ├── lodash@3.10.1
│ └── os-shim@0.1.3
├─┬ karma-browserstack-launcher@1.1.1
│ ├─┬ browserstack@1.5.0
│ │ └─┬ https-proxy-agent@1.0.0
│ │   └─┬ agent-base@2.0.1
│ │     └── semver@5.0.3
│ └─┬ browserstacktunnel-wrapper@1.4.2
│   └─┬ unzip@0.1.11
│     ├─┬ binary@0.3.0
│     │ ├── buffers@0.1.1
│     │ └─┬ chainsaw@0.1.0
│     │   └── traverse@0.3.9
│     ├─┬ fstream@0.1.31
│     │ └─┬ graceful-fs@3.0.11
│     │   └── natives@1.1.0
│     ├─┬ match-stream@0.0.2
│     │ └─┬ readable-stream@1.0.34
│     │   └── isarray@0.0.1
│     ├─┬ pullstream@0.4.1
│     │ ├── over@0.0.5
│     │ ├─┬ readable-stream@1.0.34
│     │ │ └── isarray@0.0.1
│     │ └─┬ slice-stream@1.0.0
│     │   └─┬ readable-stream@1.0.34
│     │     └── isarray@0.0.1
│     ├─┬ readable-stream@1.0.34
│     │ └── isarray@0.0.1
│     └── setimmediate@1.0.5
├─┬ karma-chrome-launcher@2.0.0
│ ├─┬ fs-access@1.0.1
│ │ └── null-check@1.0.0
│ └─┬ which@1.2.11
│   └── isexe@1.1.2
├─┬ karma-coverage@1.1.1
│ ├── dateformat@1.0.12
│ ├─┬ istanbul@0.4.5
│ │ ├─┬ escodegen@1.8.1
│ │ │ ├─┬ optionator@0.8.2
│ │ │ │ ├── fast-levenshtein@2.0.5
│ │ │ │ └── levn@0.3.0
│ │ │ └── source-map@0.2.0
│ │ ├── esprima@2.7.3
│ │ └── supports-color@3.1.2
│ └── lodash@3.10.1
├── karma-detect-browsers@2.1.0
├── karma-firefox-launcher@1.0.0
├── karma-ie-launcher@1.0.0
├── karma-opera-launcher@1.0.0
├── karma-qunit@1.2.1
├── karma-safari-launcher@1.0.0
├── karma-sinon@1.0.5
├─┬ load-grunt-tasks@3.5.2
│ ├─┬ multimatch@2.1.0
│ │ ├── array-differ@1.0.0
│ │ └─┬ array-union@1.0.2
│ │   └── array-uniq@1.0.3
│ ├─┬ pkg-up@1.0.0
│ │ └─┬ find-up@1.1.2
│ │   └── path-exists@2.1.0
│ └─┬ resolve-pkg@0.1.0
│   └── resolve-from@2.0.0
├── lodash-compat@3.10.2
├── markdown-table@1.0.0
├─┬ object.assign@4.0.4
│ ├── define-properties@1.1.2
│ └── function-bind@1.1.0
├─┬ proxyquireify@3.2.1
│ ├─┬ browser-pack@6.0.1
│ │ ├─┬ combine-source-map@0.7.2
│ │ │ ├── convert-source-map@1.1.3
│ │ │ └── inline-source-map@0.6.2
│ │ └─┬ through2@2.0.1
│ │   ├── readable-stream@2.0.6
│ │   └── xtend@4.0.1
│ ├── detective@4.1.1
│ ├─┬ fill-keys@1.0.2
│ │ ├── is-object@1.0.1
│ │ └── merge-descriptors@1.0.1
│ ├── has-require@1.2.2
│ ├── module-not-found-error@1.0.1
│ ├─┬ require-deps@1.0.1
│ │ └── pff@1.0.0
│ ├── through@2.2.7
│ └── xtend@3.0.0
├── qunitjs@1.23.1
├─┬ safe-json-parse@4.0.0
│ └─┬ rust-result@1.0.0
│   └── individual@2.0.0
├── shelljs-nodecli@0.1.1
├─┬ sinon@1.17.6
│ ├── formatio@1.1.1
│ ├── lolex@1.3.2
│ ├── samsam@1.1.2
│ └─┬ util@0.10.3
│   └── inherits@2.0.1
├─┬ time-grunt@1.4.0
│ ├─┬ date-time@1.1.0
│ │ └── time-zone@0.1.0
│ ├── figures@1.7.0
│ ├── number-is-nan@1.0.1
│ ├─┬ pretty-ms@2.1.0
│ │ ├── is-finite@1.0.2
│ │ ├── parse-ms@1.0.1
│ │ └── plur@1.0.0
│ └── text-table@0.2.0
├── tsml@1.0.1
├─┬ uglify-js@2.7.3
│ ├── async@0.2.10
│ ├── uglify-to-browserify@1.0.2
│ └─┬ 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
│   │ │ │ └── repeat-string@1.5.4
│   │ │ └── lazy-cache@1.0.4
│   │ ├── right-align@0.1.3
│   │ └── wordwrap@0.0.2
│   └── window-size@0.1.0
├─┬ videojs-doc-generator@0.0.1
│ ├─┬ dox@0.4.6
│ │ ├── commander@0.6.1
│ │ └── marked@0.3.6
│ ├─┬ escope@1.0.3
│ │ └── estraverse@2.0.0
│ ├── esprima@1.0.4
│ ├── estraverse@1.3.2
│ ├── lodash@1.3.1
│ └── mkdirp@0.3.5
├── videojs-font@2.0.0
├── videojs-ie8@1.1.2
├─┬ videojs-standard@5.2.0
│ ├─┬ babel-eslint@6.1.2
│ │ ├── lodash.assign@4.2.0
│ │ └── lodash.pickby@4.6.0
│ ├─┬ eslint@2.13.1
│ │ ├── chalk@1.1.3
│ │ ├── doctrine@1.5.0
│ │ ├─┬ es6-map@0.1.4
│ │ │ ├── d@0.1.1
│ │ │ ├── es5-ext@0.10.12
│ │ │ ├── es6-iterator@2.0.0
│ │ │ ├── es6-set@0.1.4
│ │ │ ├── es6-symbol@3.1.0
│ │ │ └── event-emitter@0.3.4
│ │ ├─┬ escope@3.6.0
│ │ │ ├── es6-weak-map@2.0.1
│ │ │ └─┬ esrecurse@4.1.0
│ │ │   └── estraverse@4.1.1
│ │ ├─┬ espree@3.3.2
│ │ │ ├── acorn@4.0.3
│ │ │ └─┬ acorn-jsx@3.0.1
│ │ │   └── acorn@3.3.0
│ │ ├── estraverse@4.2.0
│ │ ├── esutils@2.0.2
│ │ ├─┬ file-entry-cache@1.3.1
│ │ │ └─┬ flat-cache@1.2.1
│ │ │   ├── circular-json@0.3.1
│ │ │   ├─┬ del@2.2.2
│ │ │   │ ├─┬ globby@5.0.0
│ │ │   │ │ └─┬ glob@7.1.1
│ │ │   │ │   └── once@1.4.0
│ │ │   │ ├── is-path-cwd@1.0.0
│ │ │   │ └─┬ is-path-in-cwd@1.0.0
│ │ │   │   └── is-path-inside@1.0.0
│ │ │   └── write@0.2.1
│ │ ├─┬ glob@7.1.1
│ │ │ └── once@1.4.0
│ │ ├── globals@9.12.0
│ │ ├── ignore@3.2.0
│ │ ├── imurmurhash@0.1.4
│ │ ├─┬ inquirer@0.12.0
│ │ │ ├── ansi-escapes@1.4.0
│ │ │ ├─┬ cli-cursor@1.0.2
│ │ │ │ └─┬ restore-cursor@1.0.1
│ │ │ │   └── exit-hook@1.1.1
│ │ │ ├── cli-width@2.1.0
│ │ │ ├─┬ readline2@1.0.1
│ │ │ │ └── mute-stream@0.0.5
│ │ │ ├─┬ run-async@0.1.0
│ │ │ │ └── once@1.4.0
│ │ │ └── rx-lite@3.1.2
│ │ ├─┬ is-my-json-valid@2.15.0
│ │ │ ├── generate-function@2.0.0
│ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ └── is-property@1.0.2
│ │ │ └── jsonpointer@4.0.0
│ │ ├─┬ is-resolvable@1.0.0
│ │ │ └── tryit@1.0.2
│ │ ├─┬ json-stable-stringify@1.0.1
│ │ │ └── jsonify@0.0.0
│ │ ├─┬ levn@0.3.0
│ │ │ ├── prelude-ls@1.1.2
│ │ │ └── type-check@0.3.2
│ │ ├─┬ optionator@0.8.2
│ │ │ ├── deep-is@0.1.3
│ │ │ └── fast-levenshtein@2.0.5
│ │ ├── path-is-inside@1.0.2
│ │ ├── pluralize@1.2.1
│ │ ├── progress@1.1.8
│ │ ├─┬ require-uncached@1.0.2
│ │ │ ├─┬ caller-path@0.1.0
│ │ │ │ └── callsites@0.2.0
│ │ │ └── resolve-from@1.0.1
│ │ ├── shelljs@0.6.1
│ │ ├── strip-json-comments@1.0.4
│ │ ├─┬ table@3.8.2
│ │ │ ├─┬ ajv@4.8.0
│ │ │ │ ├── co@4.6.0
│ │ │ │ └── json-stable-stringify@1.0.1
│ │ │ ├── ajv-keywords@1.1.1
│ │ │ ├── slice-ansi@0.0.4
│ │ │ └─┬ string-width@2.0.0
│ │ │   └── is-fullwidth-code-point@2.0.0
│ │ └─┬ user-home@2.0.0
│ │   └── os-homedir@1.0.2
│ ├── eslint-config-videojs@2.0.0
│ ├── find-root@1.0.0
│ └── tsmlb@1.0.0
├── videojs-swf@5.1.0
├── videojs-vtt.js@0.12.1
├── UNMET PEER DEPENDENCY watchify@>=3 <4
├─┬ webpack@1.13.2
│ ├── acorn@3.3.0
│ ├── clone@1.0.2
│ ├─┬ enhanced-resolve@0.9.1
│ │ └── memory-fs@0.2.0
│ ├── interpret@0.6.6
│ ├─┬ loader-utils@0.2.16
│ │ ├── big.js@3.1.3
│ │ ├── emojis-list@2.1.0
│ │ └── json5@0.5.0
│ ├─┬ memory-fs@0.3.0
│ │ ├─┬ errno@0.1.4
│ │ │ └── prr@0.0.0
│ │ └─┬ readable-stream@2.1.5
│ │   └── buffer-shims@1.0.0
│ ├─┬ node-libs-browser@0.6.0
│ │ ├─┬ buffer@4.9.1
│ │ │ └── base64-js@1.2.0
│ │ ├─┬ crypto-browserify@3.2.8
│ │ │ ├── pbkdf2-compat@2.0.1
│ │ │ ├── ripemd160@0.2.0
│ │ │ └── sha.js@2.2.6
│ │ ├── https-browserify@0.0.0
│ │ ├── process@0.11.9
│ │ └─┬ readable-stream@1.1.14
│ │   └── isarray@0.0.1
│ ├─┬ supports-color@3.1.2
│ │ └── has-flag@1.0.0
│ ├── tapable@0.1.10
│ ├─┬ uglify-js@2.6.4
│ │ ├── async@0.2.10
│ │ └─┬ yargs@3.10.0
│ │   ├── camelcase@1.2.1
│ │   ├─┬ cliui@2.1.0
│ │   │ └── wordwrap@0.0.2
│ │   └── window-size@0.1.0
│ ├─┬ watchpack@0.2.9
│ │ └── async@0.9.2
│ └─┬ webpack-core@0.6.8
│   ├── source-list-map@0.1.6
│   └── source-map@0.4.4
└─┬ xhr@2.2.0
  ├── is-function@1.0.1
  ├── once@1.1.1
  └─┬ parse-headers@2.0.1
    ├── for-each@0.3.2
    └── trim@0.0.1

npm ERR! peer dep missing: browserify@>=10 <14, required by karma-browserify@5.1.0
npm ERR! peer dep missing: watchify@>=3 <4, required by karma-browserify@5.1.0

Additional Information

versions

grunt-cli: v1.2.0 grunt: v0.4.5 npm: 3.10.8 node: v6.8.0

videojs

master (5.12.3)

OSes

MacOS Sierra

gkatsev commented 7 years ago

I think the issue is that we're still using an old version of node-sass which doesn't have macos sierra binaries. There are some reasons we can't update to a newever version of node-sass (we're relying on a feature that was removed because it didn't conform to ruby sass). Unfortunately, there isn't a good fix for this.

hartman commented 7 years ago

@gkatsev I think that would be sass/node-sass#1484

Any possible to backport this fix to node-sass 3.3? node-sass 3.4 introduces breaking changes

unfortunately it is not possible to back port this change because it's in the native code that talks to LibSass.

gkatsev commented 7 years ago

Oh, it's a problem with node 6?