##// END OF EJS Templates
js: produce minimized JS file as well as bundle
marcink -
r4017:da40b4bb default
parent child Browse files
Show More

The requested changes are too big and content was truncated. Show full diff

@@ -1,21 +1,22 b''
1 var gruntConfig = require('./grunt_config.json');
1 var gruntConfig = require('./grunt_config.json');
2 var webpackConfig = require('./webpack.config');
2 var webpackConfig = require('./webpack.config');
3 gruntConfig["webpack"] = {
3 gruntConfig["webpack"] = {
4 options: {
4 options: {
5 stats: !process.env.NODE_ENV || process.env.NODE_ENV === 'development'
5 stats: !process.env.NODE_ENV || process.env.NODE_ENV === 'development'
6 },
6 },
7 prod: webpackConfig,
7 prod: webpackConfig,
8 dev: Object.assign({ watch: false }, webpackConfig)
8 dev: Object.assign({ watch: false }, webpackConfig)
9 };
9 };
10
10
11 module.exports = function(grunt) {
11 module.exports = function(grunt) {
12 grunt.initConfig(gruntConfig);
12 grunt.initConfig(gruntConfig);
13
13
14 grunt.loadNpmTasks('grunt-contrib-less');
14 grunt.loadNpmTasks('grunt-contrib-less');
15 grunt.loadNpmTasks('grunt-contrib-concat');
15 grunt.loadNpmTasks('grunt-contrib-concat');
16 grunt.loadNpmTasks('grunt-contrib-uglify');
16 grunt.loadNpmTasks('grunt-contrib-watch');
17 grunt.loadNpmTasks('grunt-contrib-watch');
17 grunt.loadNpmTasks('grunt-contrib-jshint');
18 grunt.loadNpmTasks('grunt-contrib-jshint');
18 grunt.loadNpmTasks('grunt-contrib-copy');
19 grunt.loadNpmTasks('grunt-contrib-copy');
19 grunt.loadNpmTasks('grunt-webpack');
20 grunt.loadNpmTasks('grunt-webpack');
20 grunt.registerTask('default', ['less:production', 'less:components', 'copy', 'webpack', 'concat:dist']);
21 grunt.registerTask('default', ['less:production', 'less:components', 'copy', 'webpack', 'concat:dist', 'uglify:dist']);
21 };
22 };
@@ -1,177 +1,183 b''
1 {
1 {
2 "dirs": {
2 "dirs": {
3 "css": {
3 "css": {
4 "src": "rhodecode/public/css",
4 "src": "rhodecode/public/css",
5 "dest": "rhodecode/public/css"
5 "dest": "rhodecode/public/css"
6 },
6 },
7 "js": {
7 "js": {
8 "src": "rhodecode/public/js/src",
8 "src": "rhodecode/public/js/src",
9 "src_rc": "rhodecode/public/js/rhodecode",
9 "src_rc": "rhodecode/public/js/rhodecode",
10 "dest": "rhodecode/public/js",
10 "dest": "rhodecode/public/js",
11 "node_modules": "node_modules"
11 "node_modules": "node_modules"
12 }
12 }
13 },
13 },
14 "copy": {
14 "copy": {
15 "main": {
15 "main": {
16 "files": [
16 "files": [
17 {
17 {
18 "expand": true,
18 "expand": true,
19 "cwd": "node_modules/@webcomponents",
19 "cwd": "node_modules/@webcomponents",
20 "src": "webcomponentsjs/*.*",
20 "src": "webcomponentsjs/*.*",
21 "dest": "<%= dirs.js.dest %>/vendors"
21 "dest": "<%= dirs.js.dest %>/vendors"
22 },
22 },
23 {
23 {
24 "src": "<%= dirs.css.src %>/style-polymer.css",
24 "src": "<%= dirs.css.src %>/style-polymer.css",
25 "dest": "<%= dirs.js.dest %>/src/components/style-polymer.css"
25 "dest": "<%= dirs.js.dest %>/src/components/style-polymer.css"
26 }
26 }
27 ]
27 ]
28 }
28 }
29 },
29 },
30 "concat": {
30 "concat": {
31 "dist": {
31 "dist": {
32 "src": [
32 "src": [
33 "<%= dirs.js.node_modules %>/jquery/dist/jquery.min.js",
33 "<%= dirs.js.node_modules %>/jquery/dist/jquery.min.js",
34 "<%= dirs.js.node_modules %>/mousetrap/mousetrap.min.js",
34 "<%= dirs.js.node_modules %>/mousetrap/mousetrap.min.js",
35 "<%= dirs.js.node_modules %>/moment/min/moment.min.js",
35 "<%= dirs.js.node_modules %>/moment/min/moment.min.js",
36 "<%= dirs.js.node_modules %>/clipboard/dist/clipboard.min.js",
36 "<%= dirs.js.node_modules %>/clipboard/dist/clipboard.min.js",
37 "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js",
37 "<%= dirs.js.node_modules %>/favico.js/favico-0.3.10.min.js",
38 "<%= dirs.js.node_modules %>/dropzone/dist/dropzone.js",
38 "<%= dirs.js.node_modules %>/dropzone/dist/dropzone.js",
39 "<%= dirs.js.node_modules %>/sticky-sidebar/dist/sticky-sidebar.min.js",
39 "<%= dirs.js.node_modules %>/sticky-sidebar/dist/sticky-sidebar.min.js",
40 "<%= dirs.js.node_modules %>/sticky-sidebar/dist/jquery.sticky-sidebar.min.js",
40 "<%= dirs.js.node_modules %>/sticky-sidebar/dist/jquery.sticky-sidebar.min.js",
41 "<%= dirs.js.node_modules %>/waypoints/lib/noframework.waypoints.min.js",
41 "<%= dirs.js.node_modules %>/waypoints/lib/noframework.waypoints.min.js",
42 "<%= dirs.js.node_modules %>/waypoints/lib/jquery.waypoints.min.js",
42 "<%= dirs.js.node_modules %>/waypoints/lib/jquery.waypoints.min.js",
43 "<%= dirs.js.node_modules %>/appenlight-client/appenlight-client.min.js",
43 "<%= dirs.js.node_modules %>/appenlight-client/appenlight-client.min.js",
44 "<%= dirs.js.src %>/logging.js",
44 "<%= dirs.js.src %>/logging.js",
45 "<%= dirs.js.src %>/bootstrap.js",
45 "<%= dirs.js.src %>/bootstrap.js",
46 "<%= dirs.js.src %>/i18n_utils.js",
46 "<%= dirs.js.src %>/i18n_utils.js",
47 "<%= dirs.js.src %>/deform.js",
47 "<%= dirs.js.src %>/deform.js",
48 "<%= dirs.js.src %>/ejs.js",
48 "<%= dirs.js.src %>/ejs.js",
49 "<%= dirs.js.src %>/ejs_templates/utils.js",
49 "<%= dirs.js.src %>/ejs_templates/utils.js",
50 "<%= dirs.js.src %>/plugins/jquery.pjax.js",
50 "<%= dirs.js.src %>/plugins/jquery.pjax.js",
51 "<%= dirs.js.src %>/plugins/jquery.dataTables.js",
51 "<%= dirs.js.src %>/plugins/jquery.dataTables.js",
52 "<%= dirs.js.src %>/plugins/flavoured_checkbox.js",
52 "<%= dirs.js.src %>/plugins/flavoured_checkbox.js",
53 "<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js",
53 "<%= dirs.js.src %>/plugins/jquery.auto-grow-input.js",
54 "<%= dirs.js.src %>/plugins/jquery.autocomplete.js",
54 "<%= dirs.js.src %>/plugins/jquery.autocomplete.js",
55 "<%= dirs.js.src %>/plugins/jquery.debounce.js",
55 "<%= dirs.js.src %>/plugins/jquery.debounce.js",
56 "<%= dirs.js.node_modules %>/mark.js/dist/jquery.mark.min.js",
56 "<%= dirs.js.node_modules %>/mark.js/dist/jquery.mark.min.js",
57 "<%= dirs.js.src %>/plugins/jquery.timeago.js",
57 "<%= dirs.js.src %>/plugins/jquery.timeago.js",
58 "<%= dirs.js.src %>/plugins/jquery.timeago-extension.js",
58 "<%= dirs.js.src %>/plugins/jquery.timeago-extension.js",
59 "<%= dirs.js.src %>/select2/select2.js",
59 "<%= dirs.js.src %>/select2/select2.js",
60 "<%= dirs.js.src %>/codemirror/codemirror.js",
60 "<%= dirs.js.src %>/codemirror/codemirror.js",
61 "<%= dirs.js.src %>/codemirror/codemirror_loadmode.js",
61 "<%= dirs.js.src %>/codemirror/codemirror_loadmode.js",
62 "<%= dirs.js.src %>/codemirror/codemirror_hint.js",
62 "<%= dirs.js.src %>/codemirror/codemirror_hint.js",
63 "<%= dirs.js.src %>/codemirror/codemirror_overlay.js",
63 "<%= dirs.js.src %>/codemirror/codemirror_overlay.js",
64 "<%= dirs.js.src %>/codemirror/codemirror_placeholder.js",
64 "<%= dirs.js.src %>/codemirror/codemirror_placeholder.js",
65 "<%= dirs.js.src %>/codemirror/codemirror_simplemode.js",
65 "<%= dirs.js.src %>/codemirror/codemirror_simplemode.js",
66 "<%= dirs.js.dest %>/mode/meta.js",
66 "<%= dirs.js.dest %>/mode/meta.js",
67 "<%= dirs.js.dest %>/mode/meta_ext.js",
67 "<%= dirs.js.dest %>/mode/meta_ext.js",
68 "<%= dirs.js.src_rc %>/i18n/select2/translations.js",
68 "<%= dirs.js.src_rc %>/i18n/select2/translations.js",
69 "<%= dirs.js.src %>/rhodecode/utils/array.js",
69 "<%= dirs.js.src %>/rhodecode/utils/array.js",
70 "<%= dirs.js.src %>/rhodecode/utils/string.js",
70 "<%= dirs.js.src %>/rhodecode/utils/string.js",
71 "<%= dirs.js.src %>/rhodecode/utils/pyroutes.js",
71 "<%= dirs.js.src %>/rhodecode/utils/pyroutes.js",
72 "<%= dirs.js.src %>/rhodecode/utils/ajax.js",
72 "<%= dirs.js.src %>/rhodecode/utils/ajax.js",
73 "<%= dirs.js.src %>/rhodecode/utils/autocomplete.js",
73 "<%= dirs.js.src %>/rhodecode/utils/autocomplete.js",
74 "<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js",
74 "<%= dirs.js.src %>/rhodecode/utils/colorgenerator.js",
75 "<%= dirs.js.src %>/rhodecode/utils/ie.js",
75 "<%= dirs.js.src %>/rhodecode/utils/ie.js",
76 "<%= dirs.js.src %>/rhodecode/utils/os.js",
76 "<%= dirs.js.src %>/rhodecode/utils/os.js",
77 "<%= dirs.js.src %>/rhodecode/utils/topics.js",
77 "<%= dirs.js.src %>/rhodecode/utils/topics.js",
78 "<%= dirs.js.src %>/rhodecode/init.js",
78 "<%= dirs.js.src %>/rhodecode/init.js",
79 "<%= dirs.js.src %>/rhodecode/changelog.js",
79 "<%= dirs.js.src %>/rhodecode/changelog.js",
80 "<%= dirs.js.src %>/rhodecode/codemirror.js",
80 "<%= dirs.js.src %>/rhodecode/codemirror.js",
81 "<%= dirs.js.src %>/rhodecode/comments.js",
81 "<%= dirs.js.src %>/rhodecode/comments.js",
82 "<%= dirs.js.src %>/rhodecode/constants.js",
82 "<%= dirs.js.src %>/rhodecode/constants.js",
83 "<%= dirs.js.src %>/rhodecode/files.js",
83 "<%= dirs.js.src %>/rhodecode/files.js",
84 "<%= dirs.js.src %>/rhodecode/followers.js",
84 "<%= dirs.js.src %>/rhodecode/followers.js",
85 "<%= dirs.js.src %>/rhodecode/menus.js",
85 "<%= dirs.js.src %>/rhodecode/menus.js",
86 "<%= dirs.js.src %>/rhodecode/notifications.js",
86 "<%= dirs.js.src %>/rhodecode/notifications.js",
87 "<%= dirs.js.src %>/rhodecode/permissions.js",
87 "<%= dirs.js.src %>/rhodecode/permissions.js",
88 "<%= dirs.js.src %>/rhodecode/pjax.js",
88 "<%= dirs.js.src %>/rhodecode/pjax.js",
89 "<%= dirs.js.src %>/rhodecode/pullrequests.js",
89 "<%= dirs.js.src %>/rhodecode/pullrequests.js",
90 "<%= dirs.js.src %>/rhodecode/settings.js",
90 "<%= dirs.js.src %>/rhodecode/settings.js",
91 "<%= dirs.js.src %>/rhodecode/select2_widgets.js",
91 "<%= dirs.js.src %>/rhodecode/select2_widgets.js",
92 "<%= dirs.js.src %>/rhodecode/tooltips.js",
92 "<%= dirs.js.src %>/rhodecode/tooltips.js",
93 "<%= dirs.js.src %>/rhodecode/users.js",
93 "<%= dirs.js.src %>/rhodecode/users.js",
94 "<%= dirs.js.src %>/rhodecode/appenlight.js",
94 "<%= dirs.js.src %>/rhodecode/appenlight.js",
95 "<%= dirs.js.src %>/rhodecode.js",
95 "<%= dirs.js.src %>/rhodecode.js",
96 "<%= dirs.js.dest %>/rhodecode-components.js"
96 "<%= dirs.js.dest %>/rhodecode-components.js"
97 ],
97 ],
98 "dest": "<%= dirs.js.dest %>/scripts.js",
98 "dest": "<%= dirs.js.dest %>/scripts.js",
99 "nonull": true
99 "nonull": true
100 }
100 }
101 },
101 },
102 "uglify": {
103 "dist": {
104 "src": "<%= dirs.js.dest %>/scripts.js",
105 "dest": "<%= dirs.js.dest %>/scripts.min.js"
106 }
107 },
102 "less": {
108 "less": {
103 "development": {
109 "development": {
104 "options": {
110 "options": {
105 "compress": false,
111 "compress": false,
106 "yuicompress": false,
112 "yuicompress": false,
107 "optimization": 0
113 "optimization": 0
108 },
114 },
109 "files": {
115 "files": {
110 "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
116 "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
111 "<%= dirs.css.dest %>/style-polymer.css": "<%= dirs.css.src %>/polymer.less",
117 "<%= dirs.css.dest %>/style-polymer.css": "<%= dirs.css.src %>/polymer.less",
112 "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
118 "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
113 }
119 }
114 },
120 },
115 "production": {
121 "production": {
116 "options": {
122 "options": {
117 "compress": true,
123 "compress": true,
118 "yuicompress": true,
124 "yuicompress": true,
119 "optimization": 2
125 "optimization": 2
120 },
126 },
121 "files": {
127 "files": {
122 "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
128 "<%= dirs.css.dest %>/style.css": "<%= dirs.css.src %>/main.less",
123 "<%= dirs.css.dest %>/style-polymer.css": "<%= dirs.css.src %>/polymer.less",
129 "<%= dirs.css.dest %>/style-polymer.css": "<%= dirs.css.src %>/polymer.less",
124 "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
130 "<%= dirs.css.dest %>/style-ipython.css": "<%= dirs.css.src %>/ipython.less"
125 }
131 }
126 },
132 },
127 "components": {
133 "components": {
128 "files": [
134 "files": [
129 {
135 {
130 "cwd": "<%= dirs.js.src %>/components/",
136 "cwd": "<%= dirs.js.src %>/components/",
131 "dest": "<%= dirs.js.src %>/components/",
137 "dest": "<%= dirs.js.src %>/components/",
132 "src": [
138 "src": [
133 "**/*.less"
139 "**/*.less"
134 ],
140 ],
135 "expand": true,
141 "expand": true,
136 "ext": ".css"
142 "ext": ".css"
137 }
143 }
138 ]
144 ]
139 }
145 }
140 },
146 },
141 "watch": {
147 "watch": {
142 "less": {
148 "less": {
143 "files": [
149 "files": [
144 "<%= dirs.css.src %>/**/*.less",
150 "<%= dirs.css.src %>/**/*.less",
145 "<%= dirs.js.src %>/components/**/*.less"
151 "<%= dirs.js.src %>/components/**/*.less"
146 ],
152 ],
147 "tasks": [
153 "tasks": [
148 "less:development",
154 "less:development",
149 "less:components",
155 "less:components",
150 "concat:polymercss",
156 "concat:polymercss",
151 "webpack",
157 "webpack",
152 "concat:dist"
158 "concat:dist"
153 ]
159 ]
154 },
160 },
155 "js": {
161 "js": {
156 "files": [
162 "files": [
157 "!<%= dirs.js.src %>/components/root-styles.gen.html",
163 "!<%= dirs.js.src %>/components/root-styles.gen.html",
158 "<%= dirs.js.src %>/**/*.js",
164 "<%= dirs.js.src %>/**/*.js",
159 "<%= dirs.js.src %>/components/**/*.html"
165 "<%= dirs.js.src %>/components/**/*.html"
160 ],
166 ],
161 "tasks": [
167 "tasks": [
162 "less:components",
168 "less:components",
163 "concat:polymercss",
169 "concat:polymercss",
164 "webpack",
170 "webpack",
165 "concat:dist"
171 "concat:dist"
166 ]
172 ]
167 }
173 }
168 },
174 },
169 "jshint": {
175 "jshint": {
170 "rhodecode": {
176 "rhodecode": {
171 "src": "<%= dirs.js.src %>/rhodecode/**/*.js",
177 "src": "<%= dirs.js.src %>/rhodecode/**/*.js",
172 "options": {
178 "options": {
173 "jshintrc": ".jshintrc"
179 "jshintrc": ".jshintrc"
174 }
180 }
175 }
181 }
176 }
182 }
177 }
183 }
@@ -1,60 +1,61 b''
1 {
1 {
2 "name": "rhodecode-enterprise",
2 "name": "rhodecode-enterprise",
3 "version": "2.0.0",
3 "version": "2.0.0",
4 "private": true,
4 "private": true,
5 "description" : "RhodeCode JS packaged",
5 "description" : "RhodeCode JS packaged",
6 "license": "SEE LICENSE IN LICENSE.txt",
6 "license": "SEE LICENSE IN LICENSE.txt",
7 "repository" : {
7 "repository" : {
8 "type" : "hg",
8 "type" : "hg",
9 "url" : "https://code.rhodecode.com/rhodecode-enterprise-ce"
9 "url" : "https://code.rhodecode.com/rhodecode-enterprise-ce"
10 },
10 },
11 "devDependencies": {
11 "devDependencies": {
12 "appenlight-client": "git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1",
12 "appenlight-client": "git+https://git@github.com/AppEnlight/appenlight-client-js.git#0.5.1",
13 "clipboard": "^2.0.1",
13 "clipboard": "^2.0.1",
14 "exports-loader": "^0.6.4",
14 "exports-loader": "^0.6.4",
15 "favico.js": "^0.3.10",
15 "favico.js": "^0.3.10",
16 "dropzone": "^5.5.0",
16 "dropzone": "^5.5.0",
17 "grunt": "^0.4.5",
17 "grunt": "^0.4.5",
18 "grunt-cli": "^1.3.1",
18 "grunt-cli": "^1.3.1",
19 "grunt-contrib-concat": "^0.5.1",
19 "grunt-contrib-concat": "^0.5.1",
20 "grunt-contrib-copy": "^1.0.0",
20 "grunt-contrib-copy": "^1.0.0",
21 "grunt-contrib-jshint": "^0.12.0",
21 "grunt-contrib-jshint": "^0.12.0",
22 "grunt-contrib-less": "^1.1.0",
22 "grunt-contrib-less": "^1.1.0",
23 "grunt-contrib-watch": "^0.6.1",
23 "grunt-contrib-watch": "^0.6.1",
24 "grunt-webpack": "^3.1.3",
24 "grunt-webpack": "^3.1.3",
25 "grunt-contrib-uglify": "^4.0.1",
25 "jquery": "1.11.3",
26 "jquery": "1.11.3",
26 "mark.js": "8.11.1",
27 "mark.js": "8.11.1",
27 "jshint": "^2.9.1-rc3",
28 "jshint": "^2.9.1-rc3",
28 "moment": "^2.18.1",
29 "moment": "^2.18.1",
29 "mousetrap": "^1.6.1",
30 "mousetrap": "^1.6.1",
30 "qrious": "^4.0.2",
31 "qrious": "^4.0.2",
31 "sticky-sidebar": "3.3.4",
32 "sticky-sidebar": "3.3.1",
32 "waypoints": "4.0.1",
33 "waypoints": "4.0.1",
33 "webpack": "4.23.1",
34 "webpack": "4.23.1",
34 "webpack-cli": "3.1.2",
35 "webpack-cli": "3.1.2",
35 "babel-core": "^6.26.3",
36 "babel-core": "^6.26.3",
36 "babel-loader": "^7.1.2",
37 "babel-loader": "^7.1.2",
37 "babel-plugin-transform-object-rest-spread": "^6.26.0",
38 "babel-plugin-transform-object-rest-spread": "^6.26.0",
38 "babel-preset-env": "^1.6.0",
39 "babel-preset-env": "^1.6.0",
39 "copy-webpack-plugin": "^4.4.2",
40 "copy-webpack-plugin": "^4.4.2",
40 "css-loader": "^0.28.11",
41 "css-loader": "^0.28.11",
41 "html-loader": "^0.4.4",
42 "html-loader": "^0.4.4",
42 "html-webpack-plugin": "^3.2.0",
43 "html-webpack-plugin": "^3.2.0",
43 "imports-loader": "^0.7.1",
44 "imports-loader": "^0.7.1",
44 "polymer-webpack-loader": "^2.0.1",
45 "polymer-webpack-loader": "^2.0.1",
45 "style-loader": "^0.21.0",
46 "style-loader": "^0.21.0",
46 "webpack-uglify-js-plugin": "^1.1.9",
47 "webpack-uglify-js-plugin": "^1.1.9",
47 "raw-loader": "1.0.0-beta.0",
48 "raw-loader": "1.0.0-beta.0",
48 "ts-loader": "^1.3.3",
49 "ts-loader": "^1.3.3",
49 "@webcomponents/webcomponentsjs": "^2.0.0",
50 "@webcomponents/webcomponentsjs": "^2.0.0",
50 "@polymer/polymer": "^3.0.0",
51 "@polymer/polymer": "^3.0.0",
51 "@polymer/paper-button": "^3.0.0",
52 "@polymer/paper-button": "^3.0.0",
52 "@polymer/paper-spinner": "^3.0.0",
53 "@polymer/paper-spinner": "^3.0.0",
53 "@polymer/paper-tooltip": "^3.0.0",
54 "@polymer/paper-tooltip": "^3.0.0",
54 "@polymer/paper-toast": "^3.0.0",
55 "@polymer/paper-toast": "^3.0.0",
55 "@polymer/paper-toggle-button": "^3.0.0",
56 "@polymer/paper-toggle-button": "^3.0.0",
56 "@polymer/iron-ajax": "^3.0.0",
57 "@polymer/iron-ajax": "^3.0.0",
57 "@polymer/iron-autogrow-textarea": "^3.0.0",
58 "@polymer/iron-autogrow-textarea": "^3.0.0",
58 "@polymer/iron-a11y-keys": "^3.0.0"
59 "@polymer/iron-a11y-keys": "^3.0.0"
59 }
60 }
60 }
61 }
1 NO CONTENT: modified file
NO CONTENT: modified file
The requested commit or file is too big and content was truncated. Show full diff
General Comments 0
You need to be logged in to leave comments. Login now