UNPKG

6.62 kBapplication/x-shView Raw
1#!/usr/bin/env bash
2
3if [ -d "./node_modules/@bxjs/base" ]; then
4 # 在正式应用项目中
5 source ./node_modules/@bxjs/base/cmd.sh
6else
7 # 在bxjs本地git仓库中调试发布代码
8 echo 'ERROR!请在项目根目录下执行命令!'
9 exit -1
10fi
11
12# 对当前工程编译打包发布到FC上
13ROOT=$PWD
14cd $ROOT
15rm -rf $ROOT/dist
16mkdir -p $ROOT/dist/target
17./node_modules/typescript/bin/tsc
18if [ $? != 0 ]; then
19 echo 'make error'
20 exit
21fi
22
23# 拷贝需要发布的文件
24cp -rvf app package.json package-lock.json tsconfig.json $ROOT/dist/target
25cp -rvf ./node_modules/@bxjs/base/global.d.ts $ROOT/dist/target
26
27cd $ROOT/dist/target
28npm install --production
29
30#优化前的代码尺寸
31#added 489 packages in 6.738s
32#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
33#-rw-r--r-- 1 chujinghui staff 13981738 Jul 20 12:30 dist/target.zip
34
35#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
36#-rw-r--r-- 1 chujinghui staff 13979020 Jul 20 12:40 dist/target.zip
37
38# 裁剪掉2MB的代码尺寸
39#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
40#-rw-r--r-- 1 chujinghui staff 11631050 Jul 20 12:57 dist/target.zip
41
42#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
43#-rw-r--r-- 1 chujinghui staff 10683123 Jul 20 13:19 dist/target.zip
44
45#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
46#-rw-r--r-- 1 chujinghui staff 9738975 Jul 20 13:39 dist/target.zip
47
48# 找到一个低级库存放了一堆的fonts与后端项目无关的字库(一个大头的库被裁掉了)
49#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
50#-rw-r--r-- 1 chujinghui staff 7462289 Jul 20 14:11 dist/target.zip
51
52# 降低到代码尺寸极限大小大约裁掉50%代码尺寸大小
53#➜ toufang-system-web git:(develop) ✗ ls -l dist/target.zip
54#-rw-r--r-- 1 chujinghui staff 7033798 Jul 20 14:56 dist/target.zip
55
56# 删除发布版本中多余的文件减小代码尺寸(减少代码尺寸同时隐藏ts的源代码)
57rm -rf `find $ROOT/dist -name package\-lock.json | xargs`
58#rm -rf `find $ROOT/dist -name package.json | xargs`
59#rm -rf `find $ROOT/dist -name tsconfig.json | xargs`
60rm -rf `find $ROOT/dist -name bin | xargs`
61rm -rf `find $ROOT/dist -name .bin | xargs`
62rm -rf `find $ROOT/dist -name \*.ts | xargs`
63rm -rf `find $ROOT/dist -name \*.md | xargs`
64rm -rf `find $ROOT/dist -name \*.markdown | xargs`
65rm -rf `find $ROOT/dist -name \*LICENSE\* | xargs`
66rm -rf `find $ROOT/dist -name \*license\* | xargs`
67rm -rf `find $ROOT/dist -name \*CopyrightNotice\* | xargs`
68rm -rf `find $ROOT/dist -name .npmignore | xargs`
69rm -rf `find $ROOT/dist -name .travis.yml | xargs`
70rm -rf `find $ROOT/dist -name .jshintrc | xargs`
71rm -rf `find $ROOT/dist -name .editorconfig | xargs`
72rm -rf `find $ROOT/dist -name .gitattributes | xargs`
73rm -rf `find $ROOT/dist -name .eslintrc | xargs`
74rm -rf `find $ROOT/dist -name .coveralls.yml | xargs`
75rm -rf `find $ROOT/dist -name AUTHORS | xargs`
76#rm -rf `find $ROOT/dist/target/node_modules -name src | xargs`
77rm -rf `find $ROOT/dist/target/node_modules -name doc | xargs`
78rm -rf `find $ROOT/dist/target/node_modules -name docs | xargs`
79rm -rf `find $ROOT/dist/target/node_modules -name fonts | xargs`
80rm -rf `find $ROOT/dist/target/node_modules -name test | xargs`
81rm -rf `find $ROOT/dist/target/node_modules -name tests | xargs`
82rm -rf `find $ROOT/dist/target/node_modules -name example | xargs`
83rm -rf `find $ROOT/dist/target/node_modules -name examples | xargs`
84rm -rf `find $ROOT/dist/target/node_modules -name benchmark | xargs`
85rm -rf `find $ROOT/dist/target/node_modules -name \*samples\* | xargs`
86rm -rf `find $ROOT/dist/target/node_modules -name @types | xargs`
87rm -rf `find $ROOT/dist/target/node_modules -name demo | xargs`
88rm -rf `find $ROOT/dist/target/node_modules -name typings | xargs`
89rm -rf `find $ROOT/dist/target/node_modules -name Makefile | xargs`
90rm -rf `find $ROOT/dist/target/node_modules -name \*.debug.js | xargs`
91rm -rf `find $ROOT/dist/target/node_modules -name \*.min.js | xargs`
92rm -rf `find $ROOT/dist/target/node_modules -name locales | xargs`
93rm -rf `find $ROOT/dist/target/node_modules -name completion.sh* | xargs`
94rm -rf `find $ROOT/dist/target/node_modules -name appveyor.yml | xargs`
95rm -rf `find $ROOT/dist/target/node_modules -name codecov.yml | xargs`
96rm -rf `find $ROOT/dist/target/node_modules -name bower.json | xargs`
97rm -rf `find $ROOT/dist/target/node_modules -name Gruntfile.js | xargs`
98rm -rf `find $ROOT/dist/target/node_modules -name karma.conf.js | xargs`
99rm -rf `find $ROOT/dist/target/node_modules -name yarn.lock | xargs`
100rm -rf `find $ROOT/dist/target/node_modules -name \*.sh | xargs`
101rm -rf `find $ROOT/dist/target/node_modules -name \*ChangeLog\* | xargs`
102rm -rf `find $ROOT/dist/target/node_modules -name \*babelrc\* | xargs`
103rm -rf `find $ROOT/dist/target/node_modules -name \*eslint\* | xargs`
104rm -rf `find $ROOT/dist/target/node_modules -name \*tslint\* | xargs`
105rm -rf `find $ROOT/dist/target/node_modules -name \*.png\* | xargs`
106rm -rf `find $ROOT/dist/target/node_modules -name \*.webpack.config.js\* | xargs`
107rm -rf `find $ROOT/dist/target/node_modules -name \*.coffee\* | xargs`
108rm -rf `find $ROOT/dist/target/node_modules -name \*.h | xargs`
109rm -rf `find $ROOT/dist/target/node_modules -name CHANGELOG | xargs`
110rm -rf `find $ROOT/dist/target/node_modules -name .idea | xargs`
111rm -rf `find $ROOT/dist/target/node_modules -name .zuul.yml | xargs`
112rm -rf `find $ROOT/dist/target/node_modules -name \*TODO\* | xargs`
113rm -rf `find $ROOT/dist/target/node_modules -name \*.patch\* | xargs`
114rm -rf $ROOT/dist/target/node_modules/ramda/es
115rm -rf $ROOT/dist/target/node_modules/protobufjs/cli
116rm -rf $ROOT/dist/target/node_modules/protobufjs/docs
117rm -rf $ROOT/dist/target/node_modules/protobufjs/scripts
118rm -rf $ROOT/dist/target/node_modules/protobufjs/jsdoc.json
119rm -rf $ROOT/dist/target/node_modules/protobufjs/*.png
120rm -rf $ROOT/dist/target/node_modules/inversify/amd
121rm -rf $ROOT/dist/target/node_modules/inversify/es
122rm -rf $ROOT/dist/target/node_modules/inversify/dts
123rm -rf $ROOT/dist/target/node_modules/fsevents
124
125# 阿里云公网发布环境下函数计算的入口定义(hack阿里云封装的私有日志机制实现兼容日常和预发express的日志打印格式)
126echo "console.setLogLevel('error'); console.log = console.error; exports.handler = require('@bxjs/base/framework/index').handler" > ./index.js
127zip -q -9 -r $ROOT/dist/target.zip *
128
129# 删除打包生成的中间文件避免IDE和GIT影响
130rm -rf `find $ROOT/app -name \*.js | xargs`
131rm -rf `find $ROOT/test -name \*.js | xargs`
132cd $ROOT