-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathblockly.js
130 lines (111 loc) · 3.8 KB
/
blockly.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
'use strict';
var path = require('path');
var gulp = require('gulp');
var conf = require('./conf');
var $ = require('gulp-load-plugins')();
var closureCompiler = require('gulp-closure-compiler');
var files_dev = [
"blockly-src/blockly_uncompressed.js",
"blockly-src/msg/js/en.js",
"blockly-ext/generators/java.js",
"blockly-ext/easyj/javagenerator.js", //must come after java
"blockly-ext/core/field_variable_typed.js",
"blockly-ext/blocks/{blockly,local}/*.js",
"blockly-ext/generators/java/*.js",
];
for (var i = 0; i < files_dev.length; i++) {
files_dev[i] = path.resolve(path.join(conf.paths.src, files_dev[i]));
}
var files_prod = [
"dist/scripts/blockly-compressed.js",
"dist/scripts/java-compressed.js",
"dist/scripts/blocks-compressed.js",
"dist/scripts/blockly-messages-en.js"
];
gulp.task('blockly-dev', function() {
var injectFile = gulp.src(files_dev, { read: false });
var injectOptions = {
starttag: '<!-- inject:blockly -->',
ignorePath: conf.paths.src,
addRootSlash: false
};
return gulp.src(path.join(conf.paths.tmp, '/serve/index.html'))
.pipe($.inject(injectFile, injectOptions))
.pipe(gulp.dest(path.join(conf.paths.tmp, '/serve')));
});
gulp.task('blockly-prod', ['inject', 'blockly-compressed', 'blocks-compressed', 'java-compressed', 'copy2out'], function(){
var injectFile = gulp.src(files_prod, { read: false });
var injectOptions = {
starttag: '<!-- inject:blockly -->',
ignorePath: path.join(conf.paths.dist),
addRootSlash: false
};
return gulp.src(path.join(conf.paths.tmp, '/serve/index.html'))
.pipe($.inject(injectFile, injectOptions))
.pipe(gulp.dest(path.join(conf.paths.tmp, '/serve')));
});
gulp.task('copy2out', function() {
gulp.src('src/blockly-src/msg/js/en.js')
.pipe($.rename("blockly-messages-en.js"))
.pipe(gulp.dest('dist/scripts'));
});
//blockly
gulp.task('blockly-compressed', function() {
return gulp.src([
'src/blockly-{src,ext}/core/*.js',
'src/closure-library/closure/goog/**/*.js',
'src/closure-library/third_party/*.js'
])
.pipe(closureCompiler({
compilerPath: 'bower_components/closure-compiler/compiler.jar',
fileName: 'blockly-compressed.js',
compilerFlags: {
closure_entry_point: 'EasyJ',
compilation_level: 'SIMPLE',
// manage_closure_dependencies: true,
only_closure_dependencies: true,
//warning_level: 'VERBOSE'
}
}))
//@cat $@ | $(TRIM_LIC) > $@ @todo
.pipe(gulp.dest('dist/scripts'));
});
//blocks
gulp.task('blocks-compressed', function() {
return gulp.src([
'src/blockly-ext/shim/blocks.js',
'src/blockly-ext/blocks/blockly/*.js',
'src/blockly-ext/blocks/local/*.js'
])
.pipe(closureCompiler({
compilerPath: 'bower_components/closure-compiler/compiler.jar',
fileName: 'blocks-compressed.js',
compilerFlags: {
compilation_level: 'SIMPLE'
}
}))
//@cat $@ | $(TRIM_LIC) > $@ @todo
.pipe($.replace(/var Blockly=\{Blocks:\{\}\};/gi, ''))//@sed -i 's/var Blockly={Blocks:{}};//g' $@
.pipe($.replace(/var EasyJ=\{Blocks:\{\}\};/gi, 'EasyJ.Blocks={};'))
.pipe(gulp.dest('dist/scripts'));
});
//generators
gulp.task('java-compressed', function() {
return gulp.src([
'src/blockly-ext/shim/generator.js',
'src/blockly-ext/generators/java.js',
'src/blockly-ext/generators/java/*.js'
])
.pipe(closureCompiler({
compilerPath: 'bower_components/closure-compiler/compiler.jar',
fileName: 'java-compressed.js',
compilerFlags: {
compilation_level: 'SIMPLE'
// manage_closure_dependencies: false
}
}))
//@cat $@ | $(TRIM_LIC) > $@ @todo
.pipe($.replace(/var Blockly=\{Blocks:\{\}\};/gi, ''))//@sed -i 's/var Blockly={Blocks:{}};//g' $@
.pipe($.replace(/var Blockly=\{Generator:\{\}\};/gi, ''))
.pipe(gulp.dest('dist/scripts'));
});