PageSourceSearch

https://joplinapp.org/assets/js/844dff1b.fdb9776d.js

js joplinapp.org collected 2026-09-24 08:43:19 UTC 11,517 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_joplin_doc_builder=self.webpackChunk_joplin_doc_builder||[]).push([[2327],{3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return h}});var o=n(67294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,o,i=function(e,t){if(null==e)return{};var n,o,i={},r=Object.keys(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=o.createContext({}),p=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=p(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=i,h=u["".concat(s,".").concat(m)]||u[m]||c[m]||r;return n?o.createElement(h,a(a({ref:t},d),{},{components:n})):o.createElement(h,a({ref:t},d))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:i,a[1]=l;for(var p=2;p<r;p++)a[p]=n[p];return o.createElement.apply(null,a)}return o.createElement.apply(null,n)}m.displayName="MDXCreateElement"},82642:function(e,t,n){n.r(t),n.d(t,{assets:function(){return s},contentTitle:function(){return a},default:function(){return c},frontMatter:function(){return r},metadata:function(){return l},toc:function(){return p}});var o=n(87462),i=(n(67294),n(3905));const r={sidebar_label:"Build troubleshooting",title:"Build troubleshooting",description:"Desktop application - on Windows If yarn dist fails, it may need administrative rights. If you get an error MSB8020: The build tools for v140 cannot be found. try to run with a different toolset ve..."},a="Build troubleshooting",l={unversionedId:"dev/build_troubleshooting",id:"dev/build_troubleshooting",title:"Build troubleshooting",description:"Desktop application - on Windows If yarn dist fails, it may need administrative rights. If you get an error MSB8020: The build tools for v140 cannot be found. try to run with a different toolset ve...",source:"@site/help/dev/build_troubleshooting.md",sourceDirName:"dev",slug:"/dev/build_troubleshooting",permalink:"/help/dev/build_troubleshooting",draft:!1,editUrl:"https://github.com/laurent22/joplin/tree/dev/readme/dev/build_troubleshooting.md",tags:[],version:"current",frontMatter:{sidebar_label:"Build troubleshooting",title:"Build troubleshooting",description:"Desktop application - on Windows If yarn dist fails, it may need administrative rights. If you get an error MSB8020: The build tools for v140 cannot be found. try to run with a different toolset ve..."},sidebar:"helpSidebar",previous:{title:"`any` Cleanup Progress - details",permalink:"/help/dev/any_cleanup_progress_details"},next:{title:"Coding style",permalink:"/help/dev/coding_style"}},s={},p=[{value:"Desktop application - on Windows",id:"desktop-application---on-windows",level:2},{value:"Desktop application - on Linux and macOS",id:"desktop-application---on-linux-and-macos",level:2},{value:"Desktop application - other issues",id:"desktop-application---other-issues",level:2},{value:"The application window doesn&#39;
1t open or is white",id:"the-application-window-doesnt-open-or-is-white",level:3},{value:"How to work on the app from Windows?",id:"how-to-work-on-the-app-from-windows",level:3},{value:"Mobile application - iOS",id:"mobile-application---ios",level:2}],d={toc:p},u="wrapper";function c(e){let{components:t,...n}=e;return(0,i.kt)(u,(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"build-troubleshooting"},"Build troubleshooting"),(0,i.kt)("div",{className:"donate-links"},(0,i.kt)("p",null,(0,i.kt)("a",{parentName:"p",href:"https://www.paypal.com/donate/?hosted_button_id=WQCERTSSLCC7U"},(0,i.kt)("img",{parentName:"a",src:"https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg",alt:"Donate using PayPal"}))," ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/sponsors/laurent22/"},(0,i.kt)("img",{parentName:"a",src:"https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg",alt:"Sponsor on GitHub"}))," ",(0,i.kt)("a",{parentName:"p",href:"https://www.patreon.com/joplin"},(0,i.kt)("img",{parentName:"a",src:"https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg",alt:"Become a patron"}))," ",(0,i.kt)("a",{parentName:"p",href:"https://joplinapp.org/donate/#donations"},(0,i.kt)("img",{parentName:"a",src:"https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg",alt:"Donate using IBAN"})))),(0,i.kt)("h2",{id:"desktop-application---on-windows"},"Desktop application - on Windows"),(0,i.kt)("p",null,"If ",(0,i.kt)("inlineCode",{parentName:"p"},"yarn dist")," fails, it may need administrative rights."),(0,i.kt)("p",null,"If you get an ",(0,i.kt)("inlineCode",{parentName:"p"},"error MSB8020: The build tools for v140 cannot be found.")," try to run with a different toolset version, eg ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install --toolset=v141")," (See ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/mapbox/node-sqlite3/issues/1124"},"here")," for more info). You may also try to install ",(0,i.kt)("inlineCode",{parentName:"p"},"npm --vs2015 install --global windows-build-tools"),' (the --vs2015 flag is to get toolkit "v140", which is what is used by default).'),(0,i.kt)("p",null,"There are various errors that can occur from an improper build environment (such as MSBUILD: error MSB3428). It is recommended to install ",(0,i.kt)("inlineCode",{parentName:"p"},"windows-build-tools")," with the command ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install --global windows-build-tools")," (elevation required) and then using these two commands to set the environmental variables to the proper values:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-batch"},'call "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\Auxiliary\\Build\\vcvarsamd64_x86.bat" \nset "PATH=C:\\Program Files\\nodejs;%PATH%"\n')),(0,i.kt)("h2",{id:"desktop-application---on-linux-and-macos"},"Desktop application - on Linux and macOS"),(0,i.kt)("p",null,"If there's an error ",(0,i.kt)("inlineCode",{parentName:"p"},"while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory"),", run ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo apt-get install libgconf-2-4")),(0,i.kt)("p",null,"If you get a node-gyp related error, you might need to manually install it: ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install -g node-gyp"),"."),(0,i.kt)("p",null,"If you get unexpected ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," dependency errors on a fresh git pull, try ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run clean")),(0,i.kt)("p",null,"If ",(0,i.kt)("inlineCode",{parentName:"p"},"npm i")," gives you a fatal error like the following:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v5.0.1/napi-v6-linux-x64.tar.gz \nnode-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v83 ABI, glibc) (falling back to source compile with node-gyp)\n/bin/sh: 1: python: not found\n")),(0,i.kt)("p",null,"Try ",(0,i.kt)("inlineCode",{parentName:"p"},"sudo apt install python")," (or the ",(0,i.kt)("inlineCode",{parentName:"p"},"apt")," equivalent for your operating system) and then run ",(0,i.kt)("inlineCode",{parentName:"p"},"npm i")," again."),(0,i.kt)("p",null,"If you get the error ",(0,i.kt)("inlineCode",{parentName:"p"},"libtool: unrecognized option '-static'"),", follow the instructions ",(0,i.kt)("a",{parentName:"p",href:"https://stackoverflow.com/a/38552393/561309"},"in this post")," to use the correct libtool version."),(0,i.kt)("h2",{id:"desktop-application---other-issues"},"Desktop application - other issues"),(0,i.kt)("h3",{id:"the-application-window-doesnt-open-or-is-white"}
1,"The application window doesn't open or is white"),(0,i.kt)("p",null,"This is an indication that there's an early initialisation error. Try this:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"In ElectronAppWrapper, set ",(0,i.kt)("inlineCode",{parentName:"li"},"debugEarlyBugs")," to ",(0,i.kt)("inlineCode",{parentName:"li"},"true"),". This will force the window to show up and should open the console next to it, which should display any error."),(0,i.kt)("li",{parentName:"ul"},"In more rare cases, an already open instance of Joplin can create strange low-level bugs that will display no error but will result in this white window. A non-dev instance of Joplin, or a dev instance that wasn't properly closed might cause this. So make sure you close everything and try again. Perhaps even other Electron apps running (Skype, Slack, etc.) could cause this?"),(0,i.kt)("li",{parentName:"ul"},"Also try to delete node_modules and rebuild."),(0,i.kt)("li",{parentName:"ul"},"If all else fails, switch your computer off and on again, to make sure you start clean.")),(0,i.kt)("h3",{id:"how-to-work-on-the-app-from-windows"},"How to work on the app from Windows?"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"You should not use WSL at all")," because this is a GUI app that lives outside of WSL, and the WSL layer can cause all kind of very hard to debug issues. It can also lock files in node_modules that cannot be unlocked when the app crashes. (You need to restart your computer.) Likewise, don't run the TypeScript watch command from WSL."),(0,i.kt)("p",null,"So everything should be done from a Windows Command prompt or Windows PowerShell running as Administrator. All build and start commands are designed to work cross-platform, including on Windows."),(0,i.kt)("h2",{id:"mobile-application---ios"},"Mobile application - iOS"),(0,i.kt)("p",null,"If there is an error ",(0,i.kt)("inlineCode",{parentName:"p"},"/joplin/packages/app-mobile/ios/Pods/Target Support Files/Pods-Joplin/Pods-Joplin.debug.xcconfig: unable to open file (in target \"Joplin\" in project \"Joplin\") (in target 'Joplin' from project 'Joplin')")," run the following commands:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre"},"cd ios\npod deintegrate\npod install\n")))}c.isMDXComponent=!0}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.