Open enesflow opened 1 year ago
I tried this earlier and I don't think bun can work with node-gyp so it can't compile and package the binary
any new on this? all i can find is an unanswered stackoverflow: https://stackoverflow.com/questions/77950299/alternatives-to-node-pty-for-bun it would be very useful combined with the bun shell
As far as I'm aware bun doesn't work with nan
/napi
/node-gyp
so this isn't possible.
There are two bugs here:
1) node-gyp is supported in bun install, but there's a subtle bug with lifecycle scripts that cause it to not run correctly when there's a postinstall script and bindings.gyp both. @dylan-conway is working on a fix. This bug impacts bun install
, but does not impact the runtime.
2) Bun's runtime implements napi, but node-pty depends on many Nan/V8 C++ API & libuv symbols which Bun does not implement yet.
Those include:
__Z10PtyGetProcRKN3Nan20FunctionCallbackInfoIN2v85ValueEEE
_Z4initN2v85LocalINS_6ObjectEEE
_Z7PtyForkRKN3Nan20FunctionCallbackInfoIN2v85ValueEEE
_Z7PtyOpenRKN3Nan20FunctionCallbackInfoIN2v85ValueEEE
_Z9PtyResizeRKN3Nan20FunctionCallbackInfoIN2v85ValueEEE
_ZN2v811HandleScope12CreateHandleEPNS_8internal7IsolateEm
_ZN2v811HandleScopeC1EPNS_7IsolateE
_ZN2v811HandleScopeD1Ev
_ZN2v811HandleScopeD2Ev
_ZN2v812api_internal12ToLocalEmptyEv
_ZN2v812api_internal13DisposeGlobalEPm
_ZN2v812api_internal17FromJustIsNothingEv
_ZN2v812api_internal18GlobalizeReferenceEPNS_8internal7IsolateEm
_ZN2v814ObjectTemplate11NewInstanceENS_5LocalINS_7ContextEEE
_ZN2v814ObjectTemplate21SetInternalFieldCountEi
_ZN2v814ObjectTemplate3NewEPNS_7IsolateENS_5LocalINS_16FunctionTemplateEEE
_ZN2v816FunctionTemplate11GetFunctionENS_5LocalINS_7ContextEEE
_ZN2v816FunctionTemplate3NewEPNS_7IsolateEPFvRKNS_20FunctionCallbackInfoINS_5ValueEEEENS_5LocalIS4_EENSA_INS_9SignatureEEEiNS_19ConstructorBehaviorENS_14SideEffectTypeEPKNS_9CFunctionEttt
_ZN2v820EscapableHandleScope6EscapeEPm
_ZN2v820EscapableHandleScopeC1EPNS_7IsolateE
_ZN2v86Number3NewEPNS_7IsolateEd
_ZN2v86Object16SetInternalFieldEiNS_5LocalINS_4DataEEE
_ZN2v86Object20SlowGetInternalFieldEi
_ZN2v86Object3GetENS_5LocalINS_7ContextEEEj
_ZN2v86Object3NewEPNS_7IsolateE
_ZN2v86Object3SetENS_5LocalINS_7ContextEEENS1_INS_5ValueEEES5_
_ZN2v86String11NewFromUtf8EPNS_7IsolateEPKcNS_13NewStringTypeEi
_ZN2v87Context6GlobalEv
_ZN2v87Integer3NewEPNS_7IsolateEi
_ZN2v87Isolate10GetCurrentEv
_ZN2v87Isolate14ThrowExceptionENS_5LocalINS_5ValueEEE
_ZN2v87Isolate17GetCurrentContextEv
_ZN2v88External3NewEPNS_7IsolateEPv
_ZN2v88internal35IsolateFromNeverReadOnlySpaceObjectEm
_ZN2v89Exception5ErrorENS_5LocalINS_6StringEEE
_ZN4node12MakeCallbackEPN2v87IsolateENS0_5LocalINS0_6ObjectEEENS3_INS0_8FunctionEEEiPNS3_INS0_5ValueEEENS_13async_contextE
_ZN4node13EmitAsyncInitEPN2v87IsolateENS0_5LocalINS0_6ObjectEEENS3_INS0_6StringEEEd
_ZN4node16EmitAsyncDestroyEPN2v87IsolateENS_13async_contextE
_ZNK2v85Array6LengthEv
_ZNK2v85Value10IsFunctionEv
_ZNK2v85Value12BooleanValueEPNS_7IsolateE
_ZNK2v85Value12IntegerValueENS_5LocalINS_7ContextEEE
_ZNK2v85Value7IsArrayEv
_ZNK2v85Value8IsNumberEv
_ZNK2v85Value8ToStringENS_5LocalINS_7ContextEEE
_ZNK2v85Value9IsBooleanEv
_ZNK2v85Value9ToIntegerENS_5LocalINS_7ContextEEE
_ZNK2v86String6LengthEv
_ZNK2v86String9WriteUtf8EPNS_7IsolateEPciPii
_ZNK2v88External5ValueEv
uv_async_init
uv_async_send
uv_close
uv_default_loop
uv_thread_create
To find this information, I ran nm -g build/Release/pty.node
.
@Jarred-Sumner thanks for the info. Can you clarify whether there's anything that should happen in this repo or if it's all on bun's side? I don't mind accepting changes to improve compatibility but don't plan on doing them myself as we don't use bun currently.
Environment details
Issue description
Does not work with bun (https://bun.sh)
index.ts
error
I've tried building it with
node-gyp
This creates the build/Release folders and its contents, but now it gives this vague error:
package.json
tsconfig.json