@@ -140,61 +140,57 @@ EOF
140
140
141
141
do_js_compress ()
142
142
{
143
- echo " Compressing Javascript files..."
144
- uglifyjs_arg1=" $1 "
145
- uglifyjs_arg2=" $2 "
146
-
143
+ num_terser_threads=1
144
+ if [ " $num_build_threads " != " unspecified" ]; then
145
+ num_terser_threads=$num_build_threads
146
+ fi
147
+ echo " Compressing/Mangling JavaScript files ($num_terser_threads threads)..."
148
+ terser_arg1=" $1 "
149
+ terser_arg2=" $2 "
150
+ package_dir=" $top_dir /package-prepare"
147
151
rm -rf " $compress_js_dir "
148
152
mkdir " $compress_js_dir "
149
- escaped_package_dir=$( echo " $top_dir /package-prepare/" | sed ' s/\//\\\//g' | sed ' s/\-/\\-/g' ) ;
150
- for jsdir in $( find " ${top_dir} /package-prepare" -path " */www/js" ) ; do
151
- pkg_rel_path=$( echo $jsdir | sed " s/$escaped_package_dir //g" ) ;
152
- mkdir -p " $compress_js_dir /$pkg_rel_path "
153
- cp " $jsdir /" * .js " $compress_js_dir /$pkg_rel_path /"
154
- cd " $compress_js_dir /$pkg_rel_path /"
155
-
156
- for jsf in * .js ; do
157
- if [ -n " $uglifyjs_arg2 " ] ; then
158
- " $uglifyjs_arg1 " " $uglifyjs_arg2 " " $jsf " > " $jsf .cmp"
159
- else
160
- " $uglifyjs_arg1 " " $jsf " > " $jsf .cmp"
161
- fi
162
- mv " $jsf .cmp" " $jsf "
163
- done
164
- done
165
- cp -r " $compress_js_dir " /* " $top_dir /package-prepare/"
166
153
154
+ terser_batch=" "
155
+ cd " $package_dir "
156
+ for jsf in $( find . -path ' *.js' -a -not -path ' */www/i18n/*' )
157
+ do
158
+ compress_jsf=" $compress_js_dir /$jsf "
159
+ terser_batch=" $terser_batch $package_dir /$jsf -o $compress_jsf -c -m"
160
+ mkdir -p " $( dirname " $compress_jsf " ) "
161
+ done
167
162
cd " $top_dir "
163
+
164
+ echo " $terser_batch " | xargs -n 5 -P $num_terser_threads $terser_arg1 $terser_arg2
165
+ cp -r " $compress_js_dir " /* " $package_dir "
168
166
echo " Done!"
169
167
}
170
168
171
169
do_css_compress ()
172
170
{
173
- echo " Compressing CSS files..."
171
+ num_uglifycss_threads=1
172
+ if [ " $num_build_threads " != " unspecified" ]; then
173
+ num_uglifycss_threads=$num_build_threads
174
+ fi
175
+ echo " Compressing CSS files ($num_uglifycss_threads threads)..."
174
176
uglifycss_arg1=" $1 "
175
177
uglifycss_arg2=" $2 "
176
-
178
+ package_dir= " $top_dir /package-prepare "
177
179
rm -rf " $compress_css_dir "
178
180
mkdir " $compress_css_dir "
179
- escaped_package_dir=$( echo " $top_dir /package-prepare/" | sed ' s/\//\\\//g' | sed ' s/\-/\\-/g' ) ;
180
- for cssdir in $( find " ${top_dir} /package-prepare" -maxdepth 5 -path " */www/themes/*" ) ; do
181
- pkg_rel_path=$( echo $cssdir | sed " s/$escaped_package_dir //g" ) ;
182
- mkdir -p " $compress_css_dir /$pkg_rel_path "
183
- cp " $cssdir /" * .css " $compress_css_dir /$pkg_rel_path /"
184
- cd " $compress_css_dir /$pkg_rel_path /"
185
-
186
- for cssf in * .css ; do
187
- if [ -n " $uglifycss_arg2 " ] ; then
188
- " $uglifycss_arg1 " " $uglifycss_arg2 " " $cssf " > " $cssf .cmp"
189
- else
190
- " $uglifycss_arg1 " " $cssf " > " $cssf .cmp"
191
- fi
192
- mv " $cssf .cmp" " $cssf "
193
- done
194
- done
195
- cp -r " $compress_css_dir " /* " $top_dir /package-prepare/"
196
181
182
+ uglifycss_batch=" "
183
+ cd " $package_dir "
184
+ for cssf in $( find . -path " *.css" )
185
+ do
186
+ compress_cssf=" $compress_css_dir /$cssf "
187
+ uglifycss_batch=" $uglifycss_batch --output $compress_cssf $package_dir /$cssf "
188
+ mkdir -p " $( dirname " $compress_cssf " ) "
189
+ done
197
190
cd " $top_dir "
191
+
192
+ echo " $uglifycss_batch " | xargs -n 3 -P $num_uglifycss_threads $uglifycss_arg1 $uglifycss_arg2
193
+ cp -r " $compress_css_dir " /* " $package_dir "
198
194
echo " Done!"
199
195
}
200
196
@@ -400,31 +396,31 @@ if [ "$js_compress" = "true" ] || [ "$js_compress" = "TRUE" ] || [ "$js_compress
400
396
401
397
else
402
398
403
- uglifyjs_bin =" $top_dir /minifiers/node_modules/.bin/uglifyjs "
404
- if [ ! -e " $uglifyjs_bin " ] ; then
399
+ terser_bin =" $top_dir /minifiers/node_modules/.bin/terser "
400
+ if [ ! -e " $terser_bin " ] ; then
405
401
echo " "
406
402
echo " **************************************************************************"
407
- echo " ** UglifyJS2 is not installed, attempting to install from npm **"
403
+ echo " ** Terser is not installed, attempting to install from npm **"
408
404
echo " **************************************************************************"
409
405
echo " "
410
406
411
407
mkdir -p " $top_dir /minifiers/node_modules/.bin"
412
408
413
409
cd " $top_dir "
414
- npm install uglify-js --prefix minifiers > /dev/null 2>&1
410
+ npm install terser --prefix minifiers > /dev/null 2>&1
415
411
else
416
- echo " uglifyjs ok!"
412
+ echo " terser ok!"
417
413
fi
418
414
cd " $top_dir /minifiers/node_modules/.bin"
419
- uglify_test=$( echo ' var abc = 1;' | ${nodeglobal: +$node_binary } " $uglifyjs_bin " 2> /dev/null )
415
+ uglify_test=$( echo ' var abc = 1;' | ${nodeglobal: +$node_binary } " $terser_bin " 2> /dev/null )
420
416
if [ " $uglify_test " = ' var abc=1' ] || [ " $uglify_test " = ' var abc=1;' ] ; then
421
417
js_compress=" true"
422
- do_js_compress ${nodeglobal: +" $node_binary " } " $uglifyjs_bin "
418
+ do_js_compress ${nodeglobal: +" $node_binary " } " $terser_bin "
423
419
else
424
420
js_compress=" false"
425
421
echo " "
426
422
echo " **************************************************************************"
427
- echo " ** WARNING: Cannot compress javascript, uglifyjs could not be installed **"
423
+ echo " ** WARNING: Cannot compress JavaScript, terser could not be installed **"
428
424
echo " **************************************************************************"
429
425
echo " "
430
426
fi
0 commit comments