2017-07-15 16:38:10 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								# Overview
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 11:16:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In the AIO application, we offer the reader the option to download each example as a full self-contained
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								runnable project packaged as a zip file. These zip files are generated by the utility in this folder.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Example zipper
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-03 18:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The `exampleZipper.js`  tool is very similar to the Stackblitz's `builder.js` . The latter creates an HTML file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								with all the examples' files and the former creates a zip file instead. They both use the `stackblitz.json`  file
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								to flag an example as something to stackblitz or zip. For example:
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```json
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "description": "Tour of Heroes: Part 6",
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "files":[
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "!**/*.d.ts",
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "!**/*.js",
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    "!**/*.[1,2].*"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  ],
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  "tags": ["tutorial", "tour", "heroes", "http"]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The zipper will use this information for creating new zips.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-22 22:23:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Two kinds of examples
  
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-22 22:23:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								There are mainly two kinds of AIO docs examples: The ones based on the Angular CLI and the ones based on SystemJS.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The majority of the examples are CLI-based with only some of the `ngUpgrade`  examples using SystemJS.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-22 22:23:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Some of the CLI-based examples require small tweaks to the default layout/configuration (for example, to add support for Angular elements, i18n, universal, etc.).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								These example types have separate boilerplate directories with the files that are different from the default `cli`  boilerplate.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-22 22:23:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								There are appropriate `package.json`  files for each type of example in the boilerplate directories.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								If there is no special `package.json`  file for an example type, the one from the `cli`  boilerplate directory will be used instead.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-07-22 22:23:55 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								The `exampleZipper.js`  won't include any `System.js`  related files for CLI-based projects.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## The zipper.json
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-03 18:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								As mentioned, the tool uses the `stackblitz.json`  as a flag and also a configuration file for the zipper.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The problem is that not all examples have a stackblitz but they could offer a zip instead.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 11:16:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								In those cases, you can create a `zipper.json`  file with the same syntax. It will be ignored by the
							 
						 
					
						
							
								
									
										
										
										
											2017-11-03 18:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								stackblitz tool.
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Executing the zip generation
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-03 18:08:28 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`generateZips.js`  will create a zip for each `stackblitz.json`   or `zipper.json`  it finds. 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-07-31 13:34:22 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Where? At `src/generated/zips/` .
							 
						 
					
						
							
								
									
										
										
										
											2017-07-19 19:00:56 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 11:16:27 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Then the `<live-example>`  embedded component will look at this folder to get the zip it needs for
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								the example.