ttencate / jfxr

A browser-based tool to create sound effects for games.
http://jfxr.frozenfractal.com/
429 stars 45 forks source link

Unable to run `yarn build` on MacOsX #52

Closed realhackcraft closed 11 months ago

realhackcraft commented 1 year ago

I have macOsX 10.15 and i can run the command yarn install, but when I run the command yarn build, I get the following error:

yarn run v1.22.19
warning ../../../package.json: No license field
$ webpack
Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:471:10)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:503:5
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:358:12
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at runSyncOrAsync (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:130:11)
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3)
/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:133
        if(isError) throw e;
                    ^

Error: error:0308010C:digital envelope routines::unsupported
    at new Hash (node:internal/crypto/hash:67:19)
    at Object.createHash (node:crypto:130:10)
    at module.exports (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/util/createHash.js:135:53)
    at NormalModule._initBuildHash (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:417:16)
    at handleParseError (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:471:10)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:503:5
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/webpack/lib/NormalModule.js:358:12
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:373:3
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:214:10)
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:221:10)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:236:3
    at Object.context.callback (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at Object.module.exports (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/eslint-loader/index.js:274:11)
    at LOADER_EXECUTION (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:119:14)
    at runSyncOrAsync (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:120:4)
    at iterateNormalLoaders (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:232:2)
    at Array.<anonymous> (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/loader-runner/lib/LoaderRunner.js:205:4)
    at Storage.finished (/Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:55:16)
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:91:9
    at /Users/Hackcraft_/Downloads/jfxr-master/app/node_modules/graceful-fs/graceful-fs.js:123:16
    at FSReqCallback.readFileAfterClose [as oncomplete] (node:internal/fs/read_file_context:68:3) {
  opensslErrorStack: [ 'error:03000086:digital envelope routines::initialization error' ],
  library: 'digital envelope routines',
  reason: 'unsupported',
  code: 'ERR_OSSL_EVP_UNSUPPORTED'
}

Node.js v17.1.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
ttencate commented 1 year ago

Looks like this is due to a "too new" Node.js version. They often break backwards compatibility in new releases. Upgrading jfxr to a newer webpack version should solve it... let me see what breaks if I do that :)

ttencate commented 1 year ago

The lib package was easy, so if that's all you need, grab it from the fix/webpack5 branch.

The app package is using a bunch more loaders that are all outdated and/or deprecated and/or incompatible with newer webpack, so this requires some more work that I don't have time for at the moment. PRs welcome!

realhackcraft commented 1 year ago

does the lib have all the functions of the app except for the GUI or are there a lot of features missing?

ttencate commented 1 year ago

Given the JSON with the parameters, it renders the sound to WAV format. See https://github.com/ttencate/jfxr/blob/master/lib/README.md for details.

I-ShadowStar commented 11 months ago

Hi! Sorry for the thread necro, but I recent found this neat tool (fan of the og bfxr) and ran smack first into this exact problem when I tried to assemble a local copy. I installed a previous version of node.js to get around the issue, https://nodejs.org/download/release/v14.21.3/

ttencate commented 11 months ago

It should now work again in newer node versions, tested in 20.6.1.