INDIA +91 882 616 7094 | USA +1 949 299 0280 | GERMANY +49 176 3465 1507 info@navyuginfo.com

Assumptions:

  • The frontend is Ember and backend is Express.
  • NW (node-webkit) version is 0.20.1 (install using npm install -g nw@0.20.1)
  • Node (node) version is 7.0.0 (install using nvm install v7.0.0 which internally download node-sass with file node-v51-linux-x64)
  • NW-gyp (nw-gyp) (install using usednpm install -g nw-gyp for building node-webkit from source, but by default, it uses latest node version for compilation. In my case it uses v7.0.0. Due to it I upgraded my
    project node version to node v7.0.0)
  • Frontend compiles ember project and store compiled index file to backend/public/index.html

Initial Setup

cd /home/ubuntu/project_name/backend
nvm install v7.0.0
nvm list
nvm use v7.0.0
npm install -g nw@0.20.1
npm install -g nw-gyp

Nodemon is used for running backend express server using nodemon --exec 'bin/www' in backend
npm install -g nodemon

Install npm packages mentioned in package.json
npm install

As by default sqlite is fetched with compiled for the node. And as we require to compile for node-webkit so uninstall sqlite3
npm uninstall sqlite3 --save

Compile sqlite3 for runtime as node-WebKit with target architecture is of 64-bit system and target version of node-webkit as 0.20.1
npm install sqlite3 --build-from-source --runtime=node-webkit --target_arch=x64 --target=0.20.1 --save

Move sqlite compiled node file from node-webkit-v0.20.1-linux-x64 to node-v51-linux-x64
mv /home/ubuntu/project_name/backend/node_modules/sqlite3/lib/binding/node-webkit-v0.20.1-linux-x64/node_sqlite3.node
/home/ubuntu/project_name/backend/node_modules/sqlite3/lib/binding/node-v51-linux-x64/node_sqlite3.node

In package.json file add following fields
In backend package.json

{
   "main": "http://localhost:3000",
   "node-main": "./bin/www"
}

To run node webkit for current project execute nw