books
books copied to clipboard
yarn dev: failed to resolve entry for package "fs"
Since going from yarn electron serve to yarn dev (didn't look specifically why), Not able to launch yarn dev, I get: failed to resolve entry for package "fs"
To solve I used: https://github.com/nuxt/vite/issues/160#issuecomment-983080874
And went ahead with the fixes proposed which worked, just be careful the comment has a typo: fs: require.resolve('rollup-plugin-node-builtins'),
I'll push a commit with necessary fixes soon (unless someone else is faster ;) ), in the meantime you can use this to fix.
@Nahiiko that's strange, can you confirm that this is happening in a clean repo?
# Delete all dependencies
rm -rf node_modules
# Reinstall them
yarn
# Run dev
yarn dev
I added UI tests recently which run the app on GA (example run), those seem to work without any issues.
I still get the issue indeed, you might be right though, could be on my end too I guess
edit: trying after a git checkout b1849928d277f19443b254293e8f4ca2bd5ef9ab still doesn't seem to work
Seems to be on my side but idk what I did wrong here, Even tested with a newly created folder -> git clone -> yarn -> yarn dev
Still get: ✘ [ERROR] Failed to resolve entry for package "fs". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-pre-bundle]
Edit: I tested the same commands as the GA you referenced earlier and the ui test works indeed, but not the yarn dev it seems. Although still unsure if it's not coming from me.
Should I close the issue and simply push the fix I found @18alantom ?
I think it'd be beneficial that we somehow get to the bottom of this, I have very few experience with packages though.
Although still unsure if it's not coming from me.
Is there any steps by which you think I'd be able to replicate it? I can try debugging it then. Also what operating system are you developing it on? That might play a part.
Should I close the issue and simply push the fix
Since the fix involves adding a dependency, I'd prefer fixing the issue without it (dependency ≈ tech debt). We can close it once we get to the bottom of this.
Here's my setup: node -v : v18.16.1 (also tested with 16.20.1) python --version: Python 3.11.4 (also tested with 3.10) Architecture: Mac M1 (also tested with Rosetta emulated terminal)
I think these are the only variables here ? Probably not, but would be useful if anyone else with an ARM Mac could test I guess.
Here's my process: mkdir frappe cd frappe git clone https://github.com/frappe/books.git cd books yarn yarn dev
as I said it then crashes with the following traceback (please note yarn uitest runs fine): yarn run v1.22.19 warning ../../../package.json: No license field $ node build/scripts/dev.mjs running Frappe Books in dev mode root: /Users/nahiko/Projects/books_test/books warning ../../../package.json: No license field $ /Users/nahiko/Projects/books_test/books/node_modules/.bin/vite
VITE v4.3.9 ready in 179 ms
➜ Local: http://127.0.0.1:6969/ ➜ press h to show help Debugger listening on ws://127.0.0.1:5858/c37ef73b-28ac-4698-86c4-cde985392084 For help, see: https://nodejs.org/en/docs/inspector ✘ [ERROR] Failed to resolve entry for package "fs". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-pre-bundle]
node_modules/esbuild/lib/main.js:1360:21:
1360 │ let result = await callback({
╵ ^
at packageEntryFailure (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23382:11)
at resolvePackageEntry (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23379:5)
at tryNodeResolve (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23113:20)
at Context.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:22874:28)
at Object.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:42847:46)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64148:21
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23689:34
at async requestCallbacks.on-resolve (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1360:22)
at async handleRequest (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:723:13)
This error came from the "onResolve" callback registered here:
node_modules/esbuild/lib/main.js:1279:20:
1279 │ let promise = setup({
╵ ^
at setup (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23669:19)
at handlePlugins (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1279:21)
at buildOrContextImpl (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:968:5)
at Object.buildOrContext (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:776:5)
at /Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:68
at new Promise (<anonymous>)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:27)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2012:58)
at prepareEsbuildOptimizerRun (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:44450:35)
The plugin "vite:dep-pre-bundle" was triggered by this import
node_modules/electron/index.js:1:19:
1 │ const fs = require('fs');
╵ ~~~~
✘ [ERROR] Failed to resolve entry for package "fs". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-pre-bundle]
node_modules/esbuild/lib/main.js:1360:21:
1360 │ let result = await callback({
╵ ^
at packageEntryFailure (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23382:11)
at resolvePackageEntry (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23379:5)
at tryNodeResolve (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23113:20)
at Context.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:22874:28)
at Object.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:42847:46)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64148:21
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23689:34
at async requestCallbacks.on-resolve (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1360:22)
at async handleRequest (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:723:13)
This error came from the "onResolve" callback registered here:
node_modules/esbuild/lib/main.js:1279:20:
1279 │ let promise = setup({
╵ ^
at setup (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23669:19)
at handlePlugins (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1279:21)
at buildOrContextImpl (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:968:5)
at Object.buildOrContext (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:776:5)
at /Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:68
at new Promise (<anonymous>)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:27)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2012:58)
at prepareEsbuildOptimizerRun (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:44450:35)
The plugin "vite:dep-pre-bundle" was triggered by this import
node_modules/conf/dist/source/index.js:17:19:
17 │ const fs = require("fs");
╵ ~~~~
✘ [ERROR] Failed to resolve entry for package "fs". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-pre-bundle]
node_modules/esbuild/lib/main.js:1360:21:
1360 │ let result = await callback({
╵ ^
at packageEntryFailure (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23382:11)
at resolvePackageEntry (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23379:5)
at tryNodeResolve (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23113:20)
at Context.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:22874:28)
at Object.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:42847:46)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64148:21
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23689:34
at async requestCallbacks.on-resolve (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1360:22)
at async handleRequest (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:723:13)
This error came from the "onResolve" callback registered here:
node_modules/esbuild/lib/main.js:1279:20:
1279 │ let promise = setup({
╵ ^
at setup (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23669:19)
at handlePlugins (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1279:21)
at buildOrContextImpl (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:968:5)
at Object.buildOrContext (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:776:5)
at /Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:68
at new Promise (<anonymous>)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:27)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2012:58)
at prepareEsbuildOptimizerRun (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:44450:35)
The plugin "vite:dep-pre-bundle" was triggered by this import
node_modules/atomically/dist/utils/fs.js:4:19:
4 │ const fs = require("fs");
╵ ~~~~
✘ [ERROR] Failed to resolve entry for package "fs". The package may have incorrect main/module/exports specified in its package.json. [plugin vite:dep-pre-bundle]
node_modules/esbuild/lib/main.js:1360:21:
1360 │ let result = await callback({
╵ ^
at packageEntryFailure (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23382:11)
at resolvePackageEntry (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23379:5)
at tryNodeResolve (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23113:20)
at Context.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:22874:28)
at Object.resolveId (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:42847:46)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:64148:21
at async file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23689:34
at async requestCallbacks.on-resolve (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1360:22)
at async handleRequest (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:723:13)
This error came from the "onResolve" callback registered here:
node_modules/esbuild/lib/main.js:1279:20:
1279 │ let promise = setup({
╵ ^
at setup (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:23669:19)
at handlePlugins (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:1279:21)
at buildOrContextImpl (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:968:5)
at Object.buildOrContext (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:776:5)
at /Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:68
at new Promise (<anonymous>)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2172:27)
at Object.context (/Users/nahiko/Projects/books_test/books/node_modules/esbuild/lib/main.js:2012:58)
at prepareEsbuildOptimizerRun (file:///Users/nahiko/Projects/books_test/books/node_modules/vite/dist/node/chunks/dep-e8f070e8.js:44450:35)
The plugin "vite:dep-pre-bundle" was triggered by this import
node_modules/pkg-up/node_modules/path-exists/index.js:2:19:
2 │ const fs = require('fs');
╵ ~~~~
objc[40521]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x23df71518) and /Users/nahiko/Projects/books_test/books/node_modules/electron/dist/Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libGLESv2.dylib (0x1154713c8). One of the two will be used. Which one is undefined.
node:electron/js2c/browser_init:161
/*! no static exports found /function(e,t,r){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.getAllWebContents=t.getFocusedWebContents=t.fromDevToolsTargetId=t.fromId=t.create=void 0;const o=r(/! electron/main /"./lib/browser/api/exports/electron.ts"),n=r(/! url /"url"),s=r(/! path /"path"),i=r(/! @electron/internal/browser/guest-window-manager /"./lib/browser/guest-window-manager.ts"),a=r(/! @electron/internal/browser/parse-features-string /"./lib/browser/parse-features-string.ts"),c=r(/! @electron/internal/browser/ipc-main-internal /"./lib/browser/ipc-main-internal.ts"),l=r(/! @electron/internal/browser/ipc-main-internal-utils /"./lib/browser/ipc-main-internal-utils.ts"),u=r(/! @electron/internal/browser/message-port-main /"./lib/browser/message-port-main.ts");o.session;let d=0;const p={A5:{custom_display_name:"A5",height_microns:21e4,name:"ISO_A5",width_microns:148e3},A4:{custom_display_name:"A4",height_microns:297e3,name:"ISO_A4",is_default:"true",width_microns:21e4},A3:{custom_display_name:"A3",height_microns:42e4,name:"ISO_A3",width_microns:297e3},Legal:{custom_display_name:"Legal",height_microns:355600,name:"NA_LEGAL",width_microns:215900},Letter:{custom_display_name:"Letter",height_microns:279400,name:"NA_LETTER",width_microns:215900},Tabloid:{height_microns:431800,name:"NA_LEDGER",width_microns:279400,custom_display_name:"Tabloid"}},isValidCustomPageSize=(e,t)=>[e,t].every(e=>e>352),h={pageRange:[],mediaSize:{},landscape:!1,headerFooterEnabled:!1,marginsType:0,scaleFactor:100,shouldPrintBackgrounds:!1,shouldPrintSelectionOnly:!1,printWithCloudPrint:!1,printWithPrivet:!1,printWithExtension:!1,pagesPerSheet:1,isFirstRequest:!1,previewUIID:0,previewModifiable:!0,printToPDF:!0,deviceName:"Save as PDF",generateDraftData:!0,dpiHorizontal:72,dpiVertical:72,rasterizePDF:!1,duplex:0,copies:1,color:2,collate:!0,printerType:2,title:void 0,url:void 0},f=process._linkedBinding("electron_browser_web_contents"),m=process._linkedBinding("electron_browser_printing"),{WebContents:b}=f;function getWebFrame(e,t){if("number"==typeof t)return o.webFrameMain.fromId(e.mainFrame.processId,t);if(Array.isArray(t)&&2===t.length&&t.every(e=>"number"==typeof e))return o.webFrameMain.fromId(t[0],t[1]);throw new Error("Missing required frame argument (must be number or [processId, frameId])")}b.prototype.postMessage=function(...e){return this.mainFrame.postMessage(...e)},b.prototype.send=function(e,...t){return this.mainFrame.send(e,...t)},b.prototype._sendInternal=function(e,...t){return this.mainFrame._sendInternal(e,...t)},b.prototype.sendToFrame=function(e,t,...r){const o=getWebFrame(this,e);return!!o&&(o.send(t,...r),!0)},b.prototype._sendToFrameInternal=function(e,t,...r){const o=getWebFrame(this,e);return!!o&&(o._sendInternal(t,...r),!0)};const w=["insertCSS","insertText","removeInsertedCSS","setVisualZoomLevelLimits"];for(const e of w)b.prototype[e]=function(...t){return l.invokeInWebContents(this,"RENDERER_WEB_FRAME_METHOD",e,...t)};const waitTillCanExecuteJavaScript=async t=>{if(!t.getURL()||t.isLoadingMainFrame())return new e(e=>{t.once("did-stop-loading",()=>{e()})})};let g;b.prototype.executeJavaScript=async function(e,t){return await waitTillCanExecuteJavaScript(this),l.invokeInWebContents(this,"RENDERER_WEB_FRAME_METHOD","executeJavaScript",String(e),!!t)},b.prototype.executeJavaScriptInIsolatedWorld=async function(e,t,r){return await waitTillCanExecuteJavaScript(this),l.invokeInWebContents(this,"RENDERER_WEB_FRAME_METHOD","executeJavaScriptInIsolatedWorld",e,t,!!r)},b.prototype.printToPDF=async function(t){const r={...h,requestID:++d};if(void 0!==t.landscape){if("boolean"!=typeof t.landscape){const t=new Error("landscape must be a Boolean");return e.reject(t)}r.landscape=t.landscape}if(void 0!==t.scaleFactor){if("number"!=typeof t.scaleFactor){const t=new Error("scaleFactor must be a Number");return e.reject(t)}r.scaleFactor=t.scaleFactor}if(void 0!==t.marginsType){if("number"!=typeof t.marginsType){const t=new Error("marginsType must be a Number");return e.reject(t)}r.marginsType=t.marginsType}if(void 0!==t.printSelectionOnly){if("boolean"!=typeof t.printSelectionOnly){const t=new Error("printSelectionOnly must be a Boolean");return e.reject(t)}r.shouldPrintSelectionOnly=t.printSelectionOnly}if(void 0!==t.printBackground){if("boolean"!=typeof t.printBackground){const t=new Error("printBackground must be a Boolean");return e.reject(t)}r.shouldPrintBackgrounds=t.printBackground}if(void 0!==t.pageRanges){const o=t.pageRanges;if(!Object.prototype.hasOwnProperty.call(o,"from")||!Object.prototype.hasOwnProperty.call(o,"to")){const t=new Error("pageRanges must be an Object with 'from' and 'to' properties");return e.reject(t)}if("number"!=typeof o.from){const t=new Error("pageRanges.from must be a Number");return e.reject(t)}if("number"!=typeof o.to){const t=new Error("pageRanges.to must be a Number");return e.reject(t)}r.pageRange=[{from:o.from+1,to:o.to+1}]}if(void 0!==t.headerFooter){const o=t.headerFooter;if(r.headerFooterEnabled=!0,"object"!=typeof o){const t=new Error("headerFooter must be an Object");return e.reject(t)}if(!o.url||!o.title){const t=new Error("url and title properties are required for headerFooter");return e.reject(t)}if("string"!=typeof o.title){const t=new Error("headerFooter.title must be a String");return e.reject(t)}if(r.title=o.title,"string"!=typeof o.url){const t=new Error("headerFooter.url must be a String");return e.reject(t)}r.url=o.url}if(void 0!==t.pageSize){const o=t.pageSize;if("object"==typeof o){if(!o.height||!o.width){const t=new Error("height and width properties are required for pageSize");return e.reject(t)}const t=Math.ceil(o.height),n=Math.ceil(o.width);if(!isValidCustomPageSize(n,t)){const t=new Error("height and width properties must be minimum 352 microns.");return e.reject(t)}r.mediaSize={name:"CUSTOM",custom_display_name:"Custom",height_microns:t,width_microns:n}}else{if(!Object.prototype.hasOwnProperty.call(p,o)){const t=new Error(Unsupported pageSize: ${o}
);return e.reject(t)}r.mediaSize=p[o]}}else r.mediaSize=p.A4;if(r.scaleFactor=Math.ceil(r.scaleFactor)%100,r.printerType=2,this._printToPDF)return g=g?g.then(()=>this._printToPDF(r)):this._printToPDF(r),g;{const t=new Error("Printing feature is disabled");return e.reject(t)}},b.prototype.print=function(e={},t){if("object"==typeof e&&void 0!==e.pageSize){const t=e.pageSize;if("object"==typeof t){if(!t.height||!t.width)throw new Error("height and width properties are required for pageSize");const r=Math.ceil(t.height),o=Math.ceil(t.width);if(!isValidCustomPageSize(o,r))throw new Error("height and width properties must be minimum 352 microns.");e.mediaSize={name:"CUSTOM",custom_display_name:"Custom",height_microns:r,width_microns:o}}else{if(!p[t])throw new Error(Unsupported pageSize: ${t}
);e.mediaSize=p[t]}}this._print?t?this._print(e,t):this._print(e):console.error("Error: Printing feature is disabled.")},b.prototype.getPrinters=function(){return m.getPrinterList?m.getPrinterList():(console.error("Error: Printing feature is disabled."),[])},b.prototype.getPrintersAsync=async function(){return m.getPrinterListAsync?m.getPrinterListAsync():(console.error("Error: Printing feature is disabled."),[])},b.prototype.loadFile=function(e,t={}){if("string"!=typeof e)throw new Error("Must pass filePath as a string");const{query:r,search:i,hash:a}=t;return this.loadURL(n.format({protocol:"file",slashes:!0,pathname:s.resolve(o.app.getAppPath(),e),query:r,search:i,hash:a}))},b.prototype.loadURL=function(t,r){r||(r={});const o=new e((e,r)=>{const rejectAndCleanup=(e,t,o)=>{const n=new Error(${t} (${e}) loading '${"string"==typeof o?o.substr(0,2048):o}'
);Object.assign(n,{errno:e,code:t,url:o}),removeListeners(),r(n)},finishListener=()=>{removeListeners(),e()},failListener=(e,t,r,o,n)=>{n&&rejectAndCleanup(t,r,o)};let o=!1;const navigationListener=(e,t,r,n)=>{if(n){if(o&&!r)return rejectAndCleanup(-3,"ERR_ABORTED",t);o=!0}},stopLoadingListener=()=>{rejectAndCleanup(-2,"ERR_FAILED",t)},removeListeners=()=>{this.removeListener("did-finish-load",finishListener),this.removeListener("did-fail-load",failListener),this.removeListener("did-start-navigation",navigationListener),this.removeListener("did-stop-loading",stopLoadingListener),this.removeListener("destroyed",stopLoadingListener)};this.on("did-finish-load",finishListener),this.on("did-fail-load",failListener),this.on("did-start-navigation",navigationListener),this.on("did-stop-loading",stopLoadingListener),this.on("destroyed",stopLoadingListener)});return o.catch(()=>{}),this._loadURL(t,r),this.emit("load-url",t,r),o},b.prototype.setWindowOpenHandler=function(e){this._windowOpenHandler=e},b.prototype._callWindowOpenHandler=function(e,t){if(!this._windowOpenHandler)return null;const r=this._windowOpenHandler(t);return"object"!=typeof r?(e.preventDefault(),console.error(The window open handler response must be an object, but was instead of type '${typeof r}'.
),null):null===r?(e.preventDefault(),console.error("The window open handler response must be an object, but was instead null."),null):"deny"===r.action?(e.preventDefault(),null):"allow"===r.action?"object"==typeof r.overrideBrowserWindowOptions&&null!==r.overrideBrowserWindowOptions?r.overrideBrowserWindowOptions:{}:(e.preventDefault(),console.error("The window open handler response must be an object with an 'action' property of 'allow' or 'deny'."),null)};const addReplyToEvent=e=>{const{processId:t,frameId:r}=e;e.reply=(o,...n)=>{e.sender.sendToFrame([t,r],o,...n)}},addSenderFrameToEvent=e=>{const{processId:t,frameId:r}=e;Object.defineProperty(e,"senderFrame",{get:()=>o.webFrameMain.fromId(t,r)})},y=process.linkedBinding("electron_common_command_line"),=process._linkedBinding("electron_common_environment");b.prototype._init=function(){const e=this.getLastWebPreferences()||{};e.nodeIntegration||null==e.preload&&null==e.preloadURL||null!=e.sandbox||o.deprecate.log("The default sandbox option for windows without nodeIntegration is changing. Presently, by default, when a window has a preload script, it defaults to being unsandboxed. In Electron 20, this default will be changing, and all windows that have nodeIntegration: false (which is the default) will be sandboxed by default. If your preload script doesn't use Node, no action is needed. If your preload script does use Node, either refactor it to move Node usage to the main process, or specify sandbox: false in your WebPreferences.");const t=this.id;if(Object.defineProperty(this,"id",{value:t,writable:!1}),this._windowOpenHandler=null,this.on("-ipc-message",(function(e,t,r,n){addSenderFrameToEvent(e),t?c.ipcMainInternal.emit(r,e,...n):(addReplyToEvent(e),this.emit("ipc-message",e,r,...n),o.ipcMain.emit(r,e,...n))})),this.on("-ipc-invoke",(function(e,t,r,n){addSenderFrameToEvent(e),e._reply=t=>e.sendReply({result:t}),e._throw=t=>{console.error(Error occurred in handler for '${r}':
,t),e.sendReply({error:t.toString()})};const s=t?c.ipcMainInternal:o.ipcMain;s._invokeHandlers.has(r)?s._invokeHandlers.get(r)(e,...n):e.throw(No handler registered for '${r}'
)})),this.on("-ipc-message-sync",(function(e,t,r,n){addSenderFrameToEvent(e),(e=>{Object.defineProperty(e,"returnValue",{set:t=>e.sendReply(t),get:()=>{}})})(e),t?c.ipcMainInternal.emit(r,e,...n):(addReplyToEvent(e),0===this.listenerCount("ipc-message-sync")&&0===o.ipcMain.listenerCount(r)&&console.warn(WebContents #${this.id} called ipcRenderer.sendSync() with '${r}' channel without listeners.
),this.emit("ipc-message-sync",e,r,...n),o.ipcMain.emit(r,e,...n))})),this.on("-ipc-ports",(function(e,t,r,n,s){addSenderFrameToEvent(e),e.ports=s.map(e=>new u.MessagePortMain(e)),o.ipcMain.emit(r,e,n)})),this.on("crashed",(e,...t)=>{o.app.emit("renderer-process-crashed",e,this,...t)}),this.on("render-process-gone",(e,t)=>{o.app.emit("render-process-gone",e,this,t),(.hasVar("ELECTRON_ENABLE_LOGGING")||y.hasSwitch("enable-logging"))&&console.info(Renderer process ${t.reason} - see https://www.electronjs.org/docs/tutorial/application-debugging for potential debugging information.
)}),this.on("devtools-reload-page",(function(){this.reload()})),"remote"!==this.getType()){this.on("-new-window",(e,t,r,o,n,s,a)=>{const c={url:t,frameName:r,features:n,referrer:s,postBody:a?{data:a,...(0,i.parseContentTypeFormat)(a)}:void 0,disposition:o};let l;try{l=this._callWindowOpenHandler(e,c)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||(0,i.openGuestWindow)({event:e,embedder:e.sender,disposition:o,referrer:s,postData:a,overrideBrowserWindowOptions:l||{},windowOpenArgs:c})});let e=null;this.on("-will-add-new-contents",(t,r,o,n,s,c,l)=>{const u={url:r,frameName:o,features:n,disposition:s,referrer:c,postBody:l?{data:l,...(0,i.parseContentTypeFormat)(l)}:void 0};let d;try{d=this._callWindowOpenHandler(t,u)}catch(e){throw t.preventDefault(),e}if(e=d,!t.defaultPrevented){const r=e?{backgroundColor:e.backgroundColor,transparent:e.transparent,...e.webPreferences}:void 0,{webPreferences:o}=(0,a.parseFeatures)(n),s=(0,i.makeWebPreferences)({embedder:t.sender,insecureParsedWebPreferences:o,secureOverrideWebPreferences:r});this._setNextChildWebPreferences(s)}}),this.on("-add-new-contents",(t,r,o,n,s,a,c,l,u,d,p,h,f)=>{const m=e||void 0;e=null,"foreground-tab"===o||"new-window"===o||"background-tab"===o?(0,i.openGuestWindow)({event:t,embedder:t.sender,guest:r,overrideBrowserWindowOptions:m,disposition:o,referrer:p,postData:f,windowOpenArgs:{url:u,frameName:d,features:h}}):t.preventDefault()})}this.on("login",(e,...t)=>{o.app.emit("login",e,this,...t)}),this.on("ready-to-show",()=>{const e=this.getOwnerBrowserWindow();e&&!e.isDestroyed()&&process.nextTick(()=>{e.emit("ready-to-show")})}),this.on("select-bluetooth-device",(e,t,r)=>{1===this.listenerCount("select-bluetooth-device")&&(e.preventDefault(),r(""))});const r=process._linkedBinding("electron_browser_event").createEmpty();o.app.emit("web-contents-created",r,this),Object.defineProperty(this,"audioMuted",{get:()=>this.isAudioMuted(),set:e=>this.setAudioMuted(e)}),Object.defineProperty(this,"userAgent",{get:()=>this.getUserAgent(),set:e=>this.setUserAgent(e)}),Object.defineProperty(this,"zoomLevel",{get:()=>this.getZoomLevel(),set:e=>this.setZoomLevel(e)}),Object.defineProperty(this,"zoomFactor",{get:()=>this.getZoomFactor(),set:e=>this.setZoomFactor(e)}),Object.defineProperty(this,"frameRate",{get:()=>this.getFrameRate(),set:e=>this.setFrameRate(e)}),Object.defineProperty(this,"backgroundThrottling",{get:()=>this.getBackgroundThrottling(),set:e=>this.setBackgroundThrottling(e)})},t.create=function create(e={}){return new b(e)},t.fromId=function fromId(e){return f.fromId(e)},t.fromDevToolsTargetId=function fromDevToolsTargetId(e){return f.fromDevToolsTargetId(e)},t.getFocusedWebContents=function getFocusedWebContents(){let e=null;for(const t of f.getAllWebContents())if(t.isFocused()&&(null==e&&(e=t),"webview"===t.getType()))return t;return e},t.getAllWebContents=function getAllWebContents(){return f.getAllWebContents()}}).call(this,r(/! @electron/internal/common/webpack-globals-provider */"./lib/common/webpack-globals-provider.ts").Promise)},"./lib/browser/api/web-frame-main.ts":
TypeError: Object has been destroyed
at EventEmitter.b.send (node:electron/js2c/browser_init:161:2484)
at process.
@Nahiiko apologies for the late response
My dev set up is mostly similar to yours, I use an M1 Pro and tried recreating it using both node
v18.12.1 and v16.13.1, and matching yarn
versions (1.22.18 and 1.22.19). On non Rosetta iTerm2.
I still haven't been able to recreate the issue.
One thing I've noticed is all the errors are being triggered from outside of the books
(firsthand) source code, it's all from dependencies.
Will try running it on another M1 and update here.
Edit: tried it on an M1 MacBook Air, it's running without any issues.
Thanks for the feedback @18alantom !
It seems it may indeed come from my setup then, but I'm unsure what could be the issue ? Any idea on how to resolve ?
Hi, just started looking at Frappe Books and had similar (yarn) issues with trying to build/run. In my case they were resolved when I deleted the Yarn .pnp.cjs file. See this for references: https://yarnpkg.com/features/pnp and https://stackoverflow.com/questions/76015181/the-yarn-plugnplay-manifest-forbids-importing-xyz-here-because-its-not-list
Cheers