| 
									
										
										
										
											2016-05-28 19:32:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Modules and RequireJS | 
					
						
							|  |  |  | ===================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Most of the system is loaded via browser context RequireJS loader, in  | 
					
						
							|  |  |  | node/nw context node-specific stuff is loaded with a second node-enabled | 
					
						
							|  |  |  | RequireJS instance or node require. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-10-04 05:11:14 +03:00
										 |  |  | The ideal solution would be to use one require that sees both the browser | 
					
						
							|  |  |  | and node contexts, the problem is exactly in this, the browser requirejs | 
					
						
							|  |  |  | does not see either node or node modules while the node require loads code | 
					
						
							|  |  |  | that is not visible to devtools unless it is running at that exact moment. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Thus we are forced to use both mode requirejs loaders which may be  | 
					
						
							|  |  |  | confusing at times. | 
					
						
							| 
									
										
										
										
											2016-05-28 19:32:30 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Different loaders: | 
					
						
							|  |  |  | ------------------ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | There are two RequireJS instances present in most contexts in nw.js  | 
					
						
							|  |  |  | within the define(..) runner: | 
					
						
							|  |  |  | 	- require(..)		 | 
					
						
							|  |  |  | 		Pure browser RequireJS instance, used to load local  | 
					
						
							|  |  |  | 		modules. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	- requirejs(..)		 | 
					
						
							|  |  |  | 		Node-enabled RequireJS instance, used to load node  | 
					
						
							|  |  |  | 		modules. | 
					
						
							|  |  |  | 		This is needed as the above require(..) overloads the  | 
					
						
							|  |  |  | 		node native loader. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The future: | 
					
						
							|  |  |  | ----------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This seems a bit confusing, so at least the naming convention should be | 
					
						
							|  |  |  | revised. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-16 23:18:19 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | Runtimes | 
					
						
							|  |  |  | ======== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ImageGrid.Viewer can be run in a number of runtimes on multiple platforms. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Browser | 
					
						
							|  |  |  | ------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | npm install | 
					
						
							|  |  |  | index.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Node.js | 
					
						
							|  |  |  | ------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | npm install | 
					
						
							|  |  |  | node ig.js --help | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | NW.js | 
					
						
							|  |  |  | ----- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | npm install | 
					
						
							|  |  |  | npm start | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Electron | 
					
						
							|  |  |  | -------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | XXX EXPERIMENTAL -- mostly runs in restricted (browser-like) mode... | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | npm install | 
					
						
							|  |  |  | electron e.js | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Cordova/PhoneGap | 
					
						
							|  |  |  | ---------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | XXX | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |