1 |
d2a8c3fd
|
Marc NICOLAS
|
# Compress sources
|
2 |
|
|
|
3 |
|
|
## Compress admin source
|
4 |
|
|
|
5 |
|
|
### Pre requisite
|
6 |
|
|
|
7 |
|
|
Install nodejs on Ubuntu
|
8 |
|
|
|
9 |
|
|
//Configuration du proxy (if needed)
|
10 |
|
|
export http_proxy=http://user:password@proxy2.akka.eu:9090
|
11 |
|
|
export https_proxy=http://user:password@proxy2.akka.eu:9090
|
12 |
|
|
//add custom repository to have last nodejs version
|
13 |
|
|
sudo -E apt-add-repository ppa:chris-lea/node.js
|
14 |
|
|
//install nodejs
|
15 |
|
|
sudo apt-get update
|
16 |
|
|
sudo apt-get install nodejs
|
17 |
|
|
//Configure nodejs repository in http to avoid proxy problems
|
18 |
|
|
npm config set registry http://registry.npmjs.org/
|
19 |
|
|
|
20 |
|
|
|
21 |
|
|
|
22 |
|
|
Configure the proxy (if needed)
|
23 |
|
|
|
24 |
|
|
npm config set proxy http://proxy.company.com:8080
|
25 |
|
|
npm config set https-proxy http://proxy.company.com:8080
|
26 |
|
|
|
27 |
|
|
### Intialise gulp
|
28 |
|
|
|
29 |
|
|
npm install gulp gulp-concat gulp-uglifyjs
|
30 |
|
|
|
31 |
|
|
|
32 |
|
|
### Build sources
|
33 |
|
|
|
34 |
|
|
gulp
|
35 |
|
|
|
36 |
|
|
### Update the freemarker template (index.html equivalent)
|
37 |
|
|
|
38 |
|
|
Go to the *data/freemarker* folder.
|
39 |
|
|
|
40 |
|
|
Edit the adminIndex.ftl file.
|
41 |
|
|
|
42 |
|
|
Comment all script tags between
|
43 |
|
|
|
44 |
|
|
<!-- BEGIN_JS_DEV_INCLUDES --> and <!-- END_JS_DEV_INCLUDES -->
|
45 |
|
|
|
46 |
|
|
and uncomment all script tags between
|
47 |
|
|
|
48 |
|
|
<!-- BEGIN_PROD and END PROD -->
|
49 |
|
|
|
50 |
|
|
### Refresh the file list JSON file
|
51 |
|
|
|
52 |
|
|
The build process is based on a single json file that contains the **ordered** list of all files to build.
|
53 |
|
|
In order to create or refresh that list, you can follow the following steps :
|
54 |
|
|
|
55 |
|
|
1. Run SITools2 admin with Google chrome
|
56 |
|
|
2. Open the javascript console by pressing f12
|
57 |
|
|
3. In the javascript console run :
|
58 |
|
|
|
59 |
|
|
var out = [];
|
60 |
|
|
//loop through all classes loaded to get the file path
|
61 |
|
|
Ext.each(Ext.Loader.history, function(classz) {
|
62 |
|
|
var filePath = Ext.Loader.classNameToFilePathMap[classz];
|
63 |
|
|
if(!Ext.isEmpty(filePath)) {
|
64 |
|
|
// update the filePath to quope with url rewriting
|
65 |
|
|
filePath = filePath.replace("client-public/", "client-public-3.0/");
|
66 |
|
|
filePath = filePath.replace("./js/", "js/");
|
67 |
|
|
out.push(filePath);
|
68 |
|
|
}
|
69 |
|
|
});
|
70 |
|
|
// Stringigy the output array
|
71 |
|
|
var out = JSON.stringify(out);
|
72 |
|
|
// add a breakline add the end of each line to make it easier to read
|
73 |
|
|
var reEndOfLine = new RegExp('",', 'g');
|
74 |
|
|
out = out.replace(reEndOfLine, '",\n');
|
75 |
|
|
out;
|
76 |
|
|
|
77 |
|
|
4. Copy and paste the result into the *conf/files.json* file
|
78 |
|
|
5. Run the gulp task again |