Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to properly include twitter bootstrap in electron app?

This is my first electron app, which is based on quick-start app. I want to add twitter bootstrap's css. So I installed it like this:

npm install bootstrap

And included in the index.html like this:

<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">

When I run: npm start from terminal it works fine. However when I try to build it using electron-packager like this:

npm run build

I get a native mac app "myApp.app", but when I open it, I don't see the styles.

The only files in the application aside from node_modules and package.json are: main.js and index.html and both are in the root dir.

Is there a step here that I am missing?

Edit

I realized that the application is looking for the css file in Resouces/app directory. Is it the responsibility of the build tool to include the css file, or should I include it manually? If I have to take care of this, did I even needed to install bootstrap from npm?

like image 276
Lamar Avatar asked Mar 13 '17 09:03

Lamar


People also ask

How do I add bootstrap to Electron app?

Unzip the folder into the electron app. In the bootstrap directory, there are css and javascript files. For better understanding, move the bootstrap css files into the CSS folder ( All the styling files will be in this folder) and bootstrap js files to JS folder ( All the Javascript files will be in this folder)

Can we use bootstrap in Electron app?

The User Interface of Electron apps is built using HTML, CSS and JS. So we can leverage all the available tools for front-end web development here as well. You can use the tools such as Angular, Backbone, React, Bootstrap, and Foundation, to build the apps.

Where does NPM install bootstrap?

Running 'npm install bootstrap' command will download the latest version of bootstrap and install in subfolder './node_module' folder.


1 Answers

Check your package.json file: is bootstrap listed as a dependency? Probably not since it doesn't look like you are using the --save param:

npm install bootstrap --save

I'm no Electron hero: I happen to be working on a project using fs-jetpack at the moment. I deleted the fs-jetpack entry from from my project.json and did an OSX build using electron-packager. On launch I got a script error about missing "fs-jetpack'. From that I conclude that the packager uses the 'package.json` to know what to include. Maybe I'm wrong? I have "--prune=true" as one of the packager params. Maybe without that it includes everything?

Also, I am surprised that this line works for you:

<link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.min.css">

but perhaps you are using a different folder structure where the index.html file is not in the app directory?

enter image description here

like image 197
spring Avatar answered Oct 11 '22 12:10

spring