MatthewDorner / abcjs-vexflow-renderer

VexFlow renderer for ABC notation music using abcjs as parser.
GNU General Public License v3.0
23 stars 3 forks source link

Dependencies not compatible with Nodejs 15 and above #23

Closed ntolazzi closed 1 year ago

ntolazzi commented 1 year ago

Hey, I tried to install the project dependencies with yarn as described in the Readme.md but received the following error:

Building: /home/user/.nvm/versions/node/v19.0.1/bin/node /home/user/code/abcjs-vexflow-renderer/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   '/home/user/.nvm/versions/node/v19.0.1/bin/node',
gyp verb cli   '/home/user/code/abcjs-vexflow-renderer/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using node-gyp@3.8.0
gyp info using node@19.0.1 | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:89:16
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:199:21)
gyp verb `which` failed  python2 Error: not found: python2
gyp verb `which` failed     at getNotFoundError (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:13:12)
gyp verb `which` failed     at F (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:68:19)
gyp verb `which` failed     at E (/home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:80:29)
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/which/which.js:89:16
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/isexe/index.js:42:5
gyp verb `which` failed     at /home/user/code/abcjs-vexflow-renderer/node_modules/isexe/mode.js:8:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:199:21) {
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python /usr/bin/python
gyp ERR! configure error 
gyp ERR! stack Error: Command failed: /usr/bin/python -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "<string>", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
gyp ERR! stack 
gyp ERR! stack     at ChildProcess.exithandler (node:child_process:412:12)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at maybeClose (node:internal/child_process:1098:16)
gyp ERR! stack     at ChildProcess._handle.onexit (node:internal/child_process:304:5)
gyp ERR! System Linux 6.0.6-1-MANJARO
gyp ERR! command "/home/user/.nvm/versions/node/v19.0.1/bin/node" "/home/user/code/abcjs-vexflow-renderer/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/user/code/abcjs-vexflow-renderer/node_modules/node-sass
gyp ERR! node -v v19.0.1
gyp ERR! node-gyp -v v3.8.0

Googling around revealed that this has to do with incompatible nodejs to package version.

I performed some tests with different Nodejs versions and found out, that it breaks beginning with Nodejs 15, versions below 15 work and can be build and used like described in the Readme, above and including 15 do not work. Maybe you would want to update your dependencies to work with an up-to-date Nodejs or maybe at least hint towards this problem in the Readme.md file to save people the time it takes to debug and find the cause.

Best, Nico

MatthewDorner commented 1 year ago

Oh yeah, I noticed that before. It's because of node-sass. I'll try fixing it again, it's just used by webpack for the visual test app I included.

MatthewDorner commented 1 year ago

OK, I removed node-sass and updated the other dependencies, should work better now.

ntolazzi commented 1 year ago

Cool, thank you!