xuekang
2024-05-10 edf3b7fde038fcf3e6d86b8b4b88c2ff6f9014cf
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
129
130
131
132
133
134
const gulp = require('gulp');
const plugins = require('gulp-load-plugins')();
const open = require('open');
const app = {
  srcPath: 'app/', // 源代码
  devPath: 'tmp/', // 开发打包
  prdPath: 'dist/' // 生产打包
};
 
const JS_LIBS = [
  'node_modules/angular-ui-router/release/angular-ui-router.js',
  'node_modules/oclazyload/dist/ocLazyLoad.min.js',
  'node_modules/angular-loading-bar/build/loading-bar.min.js',
  'node_modules/angular-bootstrap/ui-bootstrap-tpls.min.js',
  'node_modules/moment/moment.js',
  'node_modules/angular-date-time-input/src/dateTimeInput.js',
  'node_modules/angularjs-bootstrap-datetimepicker/src/js/datetimepicker.js',
  'node_modules/angular-table-resize/dist/angular-table-resize.min.js',
  'node_modules/angular-clipboard/angular-clipboard.js',
  'node_modules/selectize/dist/js/standalone/selectize.js',
  'node_modules/angular-selectize2/dist/selectize.js',
  'node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js',
  'node_modules/ng-dialog/js/ngDialog.js',
  'node_modules/angular-ui-notification/dist/angular-ui-notification.min.js',
  'node_modules/angular-utils-pagination/dirPagination.js',
  'app/scripts/libs/treeTable.js',
];
 
const CSS_APP = [
  'node_modules/angular-loading-bar/build/loading-bar.min.css',
  'node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css',
  'node_modules/ng-dialog/css/ngDialog.min.css',
  'node_modules/ng-dialog/css/ngDialog-theme-default.css',
  'node_modules/angularjs-bootstrap-datetimepicker/src/css/datetimepicker.css',
  'node_modules/angular-ui-notification/dist/angular-ui-notification.min.css',
  'node_modules/angular-table-resize/dist/angular-table-resize.css',
  'node_modules/selectize/dist/css/selectize.css',
  'app/styles/page.css',
  'app/styles/timeline.css',
  'app/styles/main.css'
];
 
const JS_APP = [
  'app/scripts/app.js',
  'app/scripts/filters/filters.js',
  'app/scripts/services/version_service.js',
  'app/scripts/services/auth_service.js',
  'app/scripts/services/appservice.js',
  'app/scripts/services/flow_service_v1.js',
  'app/scripts/services/flow_service_v2.js',
  'app/scripts/services/degrade_service.js',
  'app/scripts/services/systemservice.js',
  'app/scripts/services/machineservice.js',
  'app/scripts/services/identityservice.js',
  'app/scripts/services/metricservice.js',
  'app/scripts/services/param_flow_service.js',
  'app/scripts/services/authority_service.js',
  'app/scripts/services/cluster_state_service.js',
  'app/scripts/services/gateway/api_service.js',
  'app/scripts/services/gateway/flow_service.js',
];
 
gulp.task('lib', function () {
  gulp.src(JS_LIBS)
    .pipe(plugins.concat('app.vendor.js'))
    .pipe(gulp.dest(app.devPath + 'js'))
    .pipe(plugins.uglify())
    .pipe(gulp.dest(app.prdPath + 'js'))
    .pipe(plugins.connect.reload());
});
 
/*
* css任务
* 在src下创建style文件夹,里面存放less文件。 
*/
gulp.task('css', function () {
  gulp.src(CSS_APP)
    .pipe(plugins.concat('app.css'))
    .pipe(gulp.dest(app.devPath + 'css'))
    .pipe(plugins.cssmin())
    .pipe(gulp.dest(app.prdPath + 'css'))
    .pipe(plugins.connect.reload());
});
 
/*
* js任务
* 在src目录下创建script文件夹,里面存放所有的js文件
*/
gulp.task('js', function () {
  gulp.src(JS_APP)
    .pipe(plugins.concat('app.js'))
    .pipe(gulp.dest(app.devPath + 'js'))
    .pipe(plugins.uglify())
    .pipe(gulp.dest(app.prdPath + 'js'))
    .pipe(plugins.connect.reload());
});
 
/*
* js任务
* 在src目录下创建script文件夹,里面存放所有的js文件
*/
gulp.task('jshint', function () {
  gulp.src(JS_APP)
    .pipe(plugins.jshint())
    .pipe(plugins.jshint.reporter());
});
 
// 每次发布的时候,可能需要把之前目录内的内容清除,避免旧的文件对新的容有所影响。 需要在每次发布前删除dist和build目录
gulp.task('clean', function () {
  gulp.src([app.devPath, app.prdPath])
    .pipe(plugins.clean());
});
 
// 总任务
gulp.task('build', ['clean', 'jshint', 'lib', 'js', 'css']);
 
// 服务
gulp.task('serve', ['build'], function () {
  plugins.connect.server({ //启动一个服务器
    root: [app.devPath], // 服务器从哪个路径开始读取,默认从开发路径读取
    livereload: true, // 自动刷新
    port: 1234
  });
  // 打开浏览器
  setTimeout(() => {
    open('http://localhost:8080/index_dev.htm')
  }, 200);
  // 监听
  gulp.watch(app.srcPath + '**/*.js', ['js']);
  gulp.watch(app.srcPath + '**/*.css', ['css']);
});
 
// 定义default任务
gulp.task('default', ['serve']);