ImageGrid/Viewer/doc/BUILD-NOTES

151 lines
3.1 KiB
Plaintext
Raw Normal View History

General environment
-------------------
ImageGrid will require the following installed and in path:
- bash
- make (GNU Make)
- git
- wget
- zip / unzip / zipnote
- grep / egrep / fgrep
- sed
Some more dependencies will be installed by make via npm locally.
Dependencies can be checked with:
$ make check
Then the build system/process is generally the same on all platforms:
- Clone the repository:
$ git clone https://github.com/flynx/ImageGrid.git
- Build the dev envioronment (bash):
$ make dev
- Run in-place:
$ make run
- Build a distro:
$ make dist
Windows environment
-------------------
This will require a UN*X-like build environment to run make and friends.
One way to go about this is (admin PowerShell):
- Install Chocolate
> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
For more info see: https://chocolatey.org/install
- Install git-bash based env:
> choco install git nodejs wget zip sed grep
Now we can proceed with the normal build.
The Makefile
------------
For make help to work make requires: bash, sed, grep/fgrep and printf to
be available in the path, run this to double check:
$ make check-help
To check the full list of dependencies run:
$ make check
The make file is largely self-documented so run this for more info:
$ make help
Sharp and other native modules for nw/electron
----------------------------------------------
And for electron (done by make):
electron-rebuild
To build sharp for a specific version of node and nwjs (outdated):
cd ./node_modules/sharp/
nw-gyp rebuild --target=0.17.4 --arch=x64
Chromium flicker issue (nw/outdated)
------------------------------------
The UI sometimes flickers -- at first blanks out to black then re-draws,
this is most noticeable on white or gray backgrounds.
This appears to be GPU related.
package.json:
"chromium-args": "--disable-gpu-compositing",
This will fix the issue temporarily, but we still need a better solution.
Remote debugging via DevTools (nw/outdated)
-------------------------------------------
Set this in package.json:
"chromium-args": "--remote-debugging-port=9222",
Then open http://localhost:9222 in chrome.
Speedup loading of app (nw/outdated)
------------------------------------
One of the ways to speed up the load times when packed is to store Node's
modules ./node_modules in a separate location, outside of the app.zip
or package.nw
To enable require(..) to find them:
- > npm install --save app-module-path
- when building the zip move all the modules out to a new location
*except* app-module-path
- add this line to all root js modules *before* any other
require(..) is called:
if(process.__nwjs){
var path = require('path')
require('app-module-path')
.addPath(path.dirname(process.execPath)
+ '/node_modules/') }