Parcel: Parcel 1 does not work on Node v15 because it uses deasync

Created on 28 Oct 2020  ยท  6Comments  ยท  Source: parcel-bundler/parcel

๐Ÿ› bug report

> parcel src/demo/index.html --no-autoinstall --https

.../node_modules/bindings/bindings.js:126
  err = new Error(
        ^

Error: Could not locate the bindings file. Tried:
 โ†’ .../node_modules/deasync/build/deasync.node
 โ†’ .../node_modules/deasync/build/Debug/deasync.node
 โ†’ .../node_modules/deasync/build/Release/deasync.node
 โ†’ .../node_modules/deasync/compiled/15.0.1/darwin/x64/deasync.node
 โ†’ .../node_modules/deasync/addon-build/release/install-root/deasync.node
 โ†’ .../node_modules/deasync/lib/binding/node-v88-darwin-x64/deasync.node
    at bindings (.../node_modules/bindings/bindings.js:126:9)
    at Object.<anonymous> (.../node_modules/deasync/index.js:30:31)
    at Module._compile (.../node_modules/v8-compile-cache/v8-compile-cache.js:192:30)

๐ŸŽ› Configuration (.babelrc, package.json, cli command)

Zero configs.

๐Ÿค” Expected Behavior

๐Ÿ˜ฏ Current Behavior

๐Ÿ’ Possible Solution

๐Ÿ”ฆ Context

๐Ÿ’ป Code Sample

๐ŸŒ Your Environment

| Software | Version(s) |
| ---------------- | ---------- |
| Parcel | 1.12.4
| Node | 15.0.1
| npm/Yarn |
| Operating System | macOS

โœ–๏ธ Non-Parcel bug

Most helpful comment

@m-w-d-d I just upgraded to Parcel 2. I didn't even need to change any of my code.

All 6 comments

I accidentally posted a new issue before realizing that it was a duplicate. Here is that issue's text:

This error seems to be happening again on newer parcel/node. I tried uninstalling and reinstalling, but I'm not comfortable with giving it permissions such as --allow-root and --unsafe-perms when these permissions are largely undocumented (it took several minutes to find anything at all on them, and I can't find anything that has enough detail as to what they do, and even so running something as root should probably be audited first, but I don't have time to do this right now).

Versions:

$ npm --version        
6.14.8
$ parcel --version                    
1.12.4
$ uname -r
5.9.1-arch1-1

Exact error:

$ npm run build       

> @ build <censored>
> parcel build *.html --out-dir ../frontend

/usr/lib/node_modules/parcel-bundler/node_modules/bindings/bindings.js:126
  err = new Error(
        ^

Error: Could not locate the bindings file. Tried:
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/Debug/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/Release/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/out/Debug/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/Debug/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/out/Release/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/Release/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/default/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/compiled/15.0.1/linux/x64/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/release/install-root/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/debug/install-root/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/default/install-root/deasync.node
 โ†’ /usr/lib/node_modules/parcel-bundler/node_modules/deasync/lib/binding/node-v88-linux-x64/deasync.node
    at bindings (/usr/lib/node_modules/parcel-bundler/node_modules/bindings/bindings.js:126:9)
    at Object.<anonymous> (/usr/lib/node_modules/parcel-bundler/node_modules/deasync/index.js:30:31)
    at Module._compile (/usr/lib/node_modules/parcel-bundler/node_modules/v8-compile-cache/v8-compile-cache.js:194:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (/usr/lib/node_modules/parcel-bundler/node_modules/v8-compile-cache/v8-compile-cache.js:161:20)
    at Object.<anonymous> (/usr/lib/node_modules/parcel-bundler/src/utils/syncPromise.js:1:79)
    at Module._compile (/usr/lib/node_modules/parcel-bundler/node_modules/v8-compile-cache/v8-compile-cache.js:194:30) {
  tries: [
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/Debug/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/Release/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/out/Debug/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/Debug/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/out/Release/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/Release/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/build/default/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/compiled/15.0.1/linux/x64/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/release/install-root/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/debug/install-root/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/addon-build/default/install-root/deasync.node',
    '/usr/lib/node_modules/parcel-bundler/node_modules/deasync/lib/binding/node-v88-linux-x64/deasync.node'
  ]
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! @ build: `parcel build *.html --out-dir ../frontend`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the @ build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     <censored>

#

This is an issue with the dependency deasync, probably missing binaries here: https://github.com/abbr/deasync-bin

This isn't really a Parcel issue directly, we got rid of deasync in Parcel 2 for this reason as well as it not being totally reliable and slower than standard synchronous code. We can't easily get rid of it in Parcel 1 though as it would require a pretty large refactor. Hopefully we can release a stable Parcel 2 soonish.

@DeMoorJasper / @john01dav - so is the solution here to downgrade Node for the interim?

@m-w-d-d I just upgraded to Parcel 2. I didn't even need to change any of my code.

@m-w-d-d you got 3 options really. Downgrade node, fix deasync or upgrade to parcel 2

@DeMoorJasper / @john01dav - I might have not realised Parcel 2 was out... ahem :)

Thanks to you both!

Was this page helpful?
0 / 5 - 0 ratings