Electron share dependencies within multiple electron.js applications - electron

I am working of multiple electron applications and i am not using installer to install my electron application instead of installer i am using win-unpacked folder because i don't want to install application.
since win-unpacked folder hold all the required dependencies it doesn't required installation but i want to use same dependencies for my other electron applications (dependencies such as dll,resources etc) to reduce size of multiple builds.
when i try to put other exe to win-unpacked folder it shows ui of the same application because resources folder is same, i think there must be some way to change resources folder name or at leaset .asar name change while creating build will resolve issue.

Related

Electron NSIS prevent reinstalling

Is there a way to have the NSIS built by Electron not re-install the app everytime it is clicked just like the MSI ? If the app is already installed I would like it to simply open it rather than re-installing.
I would use the MSI but when I open the app installed by it, it doesn't have read/write permissions from files inside the directory even if it is in Appdata (same folder as installation from NSIS). When installed from NSIS for some reason it gives read/write permissions to the app for files inside the installation directory.
Any help would be appreciated.
You need to edit your .nsi script file and do the check manually (skip the installation if an app is already installed) because there is no "switch" for that.
The issue with electron NSIS installers is that script is recreated every time (at least in the tutorials I saw) so you may lose any changes you made there.
In such case you cannot use the building pipeline, but you need to open the .nsi file with text editor, make the changes and compile everything with makensis.
Please post your script with more details.

How to make TFS include bin and debug folders by default

I recently started working on a project that is using .Net Core & React. Our shop is using TFS for a version control and this is where I encountered a problem.
When React project is created it uses NPM that loads up a bunch of files in "node_modules" folder as dependencies. Some of these modules have "bin" and "debug" folders in them, but TFS naturally ignores them causing compilation issues for other developers.
Is there a way to add something like "!\ClientApp\node_modules*" to ".tfignore" file to eliminate this behavior on certain paths?
Remove all folders generated by package managers from source control entirely. Restoring packages should be part of your build process, both on your desktop and during CI.

How do I include libraries that installed via NPM to my MVC project on Visual Studio 2017

I am trying to move from Bower to NPM.
While I was using Bower, it was easy to configure the .bowerrc file and have the downloaded libraries in a directory such as wwwroot/lib
Now, I am developing a ASP.Net Core MVC app and trying to use NPM as my default package manager. By using Command Line in Visual Studio 2017, NPM creates package.json file and download libraries to node_modules folder. Then, what is next? How can I get JS or CSS files like I used to have in wwwroot/lib director?
Ok, so heres' the thing.
NPM: Node JS package manager, helps you to manage all the libraries your software relays on. You would define your needs in a file called package.json and run npm install in the command line... BANG your packages are downloaded and are ready to use. Could be used both for front-end and back-end.
resource: https://www.quora.com/What-are-the-differences-between-NPM-Bower-Grunt-Gulp-Webpack-Browserify-Slush-Yeoman-and-Express
Now, here's where NPM stops and his dear friend Gulp takes over. I can't type all of it, but to have your css and js files in a folder (and do whatever you want with them) you'll have to use an automation tool (I personally use Gulp but there's a bunch of them out there).
It's easy to set up and the documentation is here:
https://gulpjs.com/
Gulp will basically be responsible of how and where your css files get compiled. It will base its requests for packages in the node_modules folder. So you're good to go. Configure gulp and you should be on your way.
There's also webpack. Never used it, but it seems to be the future of automation:
https://webpack.js.org/
I'd suggest using webpack.

Distributing Electron Application Across Platforms

I developed an application on my Macbook and I followed the Application Distribution page instructions on the Electron website. So right now when I double click on my electron.app folder it runs my application perfectly. However, when I transfer that folder to my Windows machine, it just shows a folder. When I double click on the folder it just shows me its contents. How can the package be run on the Windows? I don't care about my code being exposed to others. I just want to be able to run it on Windows. Is the only way of doing so through making an exe file?
Electron has separate binary distributions for Windows, OS X, and Linux, as seen on its releases page. You will need to bundle your application's code under the resources folder in each distribution for each platform you want to release for.
electron-packager exists to make this process a lot less labor-intensive.

Phonegap source control gotchas?

I'll be working in a team doing phonegap applications for the first time.
For a super simple boilerplate app shared by a team of 3, should I be including the entire project (i.e. all the directories):
app
--merges
--platforms
--plugins
--www
Having had user specific issues with conflicts which arise with iOS builds (and I'm assuming android builds), should I be adding the platforms directory in the .gitignore? Am I correct in assuming that all builds should be done by the user and not rely on someone else's phonegap build-ed versions of the app?
In my project we only commit the www folder and a windows batch file (We develop on Windows) that is the responsable for install automatically each plugin that the app needs.
When a new plugin is added, we add a new entry to that file.
When a new developer wants to make his developt enviroment with the app, him creates a new proyect and imports the www folder. After that, he runs the local build command and later runs the custom porject plugin file.

Resources