@@ -33,29 +33,28 @@ initJsdom(function (err, window) {
3333 */
3434function initJsdom ( callback ) {
3535 try {
36- var nodeToJsdomMatrix = {
37- 4 : ' 9.12.0', // last jsdom version that supported this node version
38- 6 : ' 11.12.0',
39- 8 : ' 15.2.1',
40- 10 : ' 16.7.0',
41- 12 : ' 19.0.0',
42- 14 : ' 21.1.2',
43- 16 : ' 22.1.0',
44- 18 : ' 26.1.0'
36+ var nodeToDeps = {
37+ 4 :
[ 'jsdom@ 9.12.0', '[email protected] ' ] , // last jsdom version that supported this node version 38+ 6 :
[ 'jsdom@ 11.12.0', '[email protected] ' ] , 39+ 8 : [ 'jsdom@ 15.2.1'] ,
40+ 10 : [ 'jsdom@ 16.7.0'] ,
41+ 12 : [ 'jsdom@ 19.0.0'] ,
42+ 14 : [ 'jsdom@ 21.1.2'] ,
43+ 16 : [ 'jsdom@ 22.1.0'] ,
44+ 18 : [ 'jsdom@ 26.1.0']
4545 } ;
4646
4747 var majorNodeVersion = process . versions . node . split ( '.' ) [ 0 ] ;
48- var jsdomVersion = nodeToJsdomMatrix [ majorNodeVersion ] || 'latest' ;
49-
5048 console . log ( 'node version detected as: v' + majorNodeVersion ) ;
51- console . log ( 'installing jsdom@' + jsdomVersion ) ;
52- var child = spawn (
53- 'npm' ,
54- [ 'install' , 'jsdom@' + jsdomVersion , '--no-save' ] ,
55- {
56- cwd : __dirname
57- }
58- ) ;
49+
50+ var deps = nodeToDeps [ majorNodeVersion ] || [ 'jsdom@latest' ] ;
51+ var nodeInstallArgs = [ 'install' , '--no-save' ] ;
52+ for ( var dep of deps ) {
53+ console . log ( 'installing ' + dep ) ;
54+ nodeInstallArgs . push ( dep ) ;
55+ }
56+
57+ var child = spawn ( 'npm' , nodeInstallArgs , { cwd : __dirname } ) ;
5958 child . stdout . setEncoding ( 'utf8' ) ;
6059 child . stderr . setEncoding ( 'utf8' ) ;
6160 child . stdout . on ( 'data' , function ( data ) {
0 commit comments