|
1 | 1 | module.exports = function(grunt) {
|
2 | 2 | grunt.initConfig({
|
| 3 | + env: { |
| 4 | + build: { |
| 5 | + NODE_ENV: 'production', |
| 6 | + DEST: 'dist', |
| 7 | + |
| 8 | + } |
| 9 | + }, |
3 | 10 | uglify: {
|
4 |
| - options:{ |
5 |
| - mangle: false, |
6 |
| - compress: { |
7 |
| - hoist_funs: false |
| 11 | + options: { |
| 12 | + mangle: false, |
| 13 | + compress: { |
| 14 | + hoist_funs: false |
8 | 15 | }
|
9 | 16 | },
|
10 | 17 | js: {
|
@@ -94,138 +101,149 @@ module.exports = function(grunt) {
|
94 | 101 | 'res/js/ui/prototype/class.AjxpReactComponent.js',
|
95 | 102 | 'res/js/ui/prototype/class.PydioUI.js',
|
96 | 103 | 'res/js/core/Pydio.js'
|
97 |
| - ] |
| 104 | + ] |
98 | 105 | }
|
99 |
| - } |
| 106 | + }, |
| 107 | + nodejs: { |
| 108 | + files: { |
| 109 | + 'res/js/vendor/nodejs/bundle.prod.min.js': ['res/js/vendor/nodejs/bundle.prod.js'] |
| 110 | + } |
| 111 | + }, |
100 | 112 | },
|
| 113 | + babel: { |
| 114 | + dist: { |
| 115 | + files: [ |
| 116 | + { |
| 117 | + mode: {loose: true}, |
| 118 | + expand: true, |
| 119 | + cwd: 'res/js/es6/', |
| 120 | + src: ['**/*.es6'], |
| 121 | + dest: 'res/js/core/', |
| 122 | + ext: '.js' |
| 123 | + } |
| 124 | + ] |
| 125 | + } |
| 126 | + }, |
101 | 127 |
|
102 |
| - babel: { |
103 |
| - options: { |
104 |
| - }, |
105 |
| - |
106 |
| - dist: { |
107 |
| - files: [ |
108 |
| - { |
109 |
| - mode: { loose : true }, |
110 |
| - expand: true, |
111 |
| - cwd: 'res/js/es6/', |
112 |
| - src: ['**/*.es6'], |
113 |
| - dest: 'res/js/core/', |
114 |
| - ext: '.js' |
| 128 | + browserify: { |
| 129 | + //NODE_ENV: 'production', |
| 130 | + options: { |
| 131 | + loose: 'all' |
| 132 | + }, |
| 133 | + dist: { |
| 134 | + files: { |
| 135 | + 'res/js/vendor/nodejs/bundle.prod.js': 'res/js/vendor/nodejs/export.js' |
115 | 136 | }
|
116 |
| - ] |
117 |
| - } |
118 |
| - }, |
119 |
| - |
120 |
| - browserify: { |
121 |
| - dist: { |
122 |
| - files: { |
123 |
| - 'res/js/vendor/nodejs/bundle.js': 'res/js/vendor/nodejs/export.js' |
124 |
| - } |
125 |
| - } |
| 137 | + } |
126 | 138 |
|
127 |
| - }, |
| 139 | + }, |
128 | 140 |
|
129 |
| - watch: { |
130 |
| - js: { |
131 |
| - files: [ |
132 |
| - 'res/js/vendor/modernizr/modernizr.min.js', |
133 |
| - 'res/js/core/lang/Observable.js', |
134 |
| - 'res/js/core/lang/Logger.js', |
135 |
| - 'res/js/core/util/LangUtils.js', |
136 |
| - 'res/js/core/util/XMLUtils.js', |
137 |
| - 'res/js/core/util/PathUtils.js', |
138 |
| - 'res/js/core/util/HasherUtils.js', |
139 |
| - 'res/js/core/model/Router.js', |
140 |
| - 'res/js/core/model/AjxpNode.js', |
141 |
| - 'res/js/ui/prototype/util/ajxp_utils.js', |
142 |
| - 'res/js/ui/prototype/interfaces/class.IAjxpNodeProvider.js', |
143 |
| - 'res/js/ui/prototype/interfaces/class.IAjxpWidget.js', |
144 |
| - 'res/js/ui/prototype/interfaces/class.IActionProvider.js', |
145 |
| - 'res/js/ui/prototype/interfaces/class.IFocusable.js', |
146 |
| - 'res/js/ui/prototype/interfaces/class.IContextMenuable.js', |
147 |
| - 'res/js/ui/prototype/class.AjxpPane.js', |
148 |
| - 'res/js/vendor/prototype/webfx.selectable.js', |
149 |
| - 'res/js/vendor/prototype/webfx.sortable.js', |
150 |
| - 'res/js/vendor/prototype/proto.menu.js', |
151 |
| - 'res/js/vendor/prototype/splitter.js', |
152 |
| - 'res/js/vendor/prototype/cookiejar.js', |
153 |
| - 'res/js/vendor/prototype/protopass.js', |
154 |
| - 'res/js/vendor/prototype/resizable.js', |
155 |
| - 'res/js/vendor/prototype/es6compat.js', |
156 |
| - 'res/js/vendor/leightbox/lightbox.js', |
157 |
| - 'res/js/vendor/scriptaculous/src/builder.js', |
158 |
| - 'res/js/vendor/scriptaculous/src/effects.js', |
159 |
| - 'res/js/vendor/scriptaculous/src/dragdrop.js', |
160 |
| - 'res/js/vendor/scriptaculous/src/controls.js', |
161 |
| - 'res/js/vendor/scriptaculous/src/slider.js', |
162 |
| - 'res/js/vendor/prototype/cssfx.js', |
163 |
| - 'res/js/vendor/prototype/proto.scroller.js', |
164 |
| - 'res/js/vendor/prototype/carousel.js', |
165 |
| - 'res/js/vendor/prototype/accordion.js', |
166 |
| - 'res/js/vendor/webfx/xtree.js', |
167 |
| - 'res/js/vendor/webfx/ajxptree.js', |
168 |
| - 'res/js/vendor/chosen/event.simulate.js', |
169 |
| - 'res/js/vendor/chosen/chosen.proto.js', |
170 |
| - 'res/js/core/model/User.js', |
171 |
| - 'res/js/core/http/ResourcesManager.js', |
172 |
| - 'res/js/core/model/RemoteNodeProvider.js', |
173 |
| - 'res/js/core/model/EmptyNodeProvider.js', |
174 |
| - 'res/js/core/model/Repository.js', |
175 |
| - 'res/js/core/model/BackgroundTasksManager.js', |
176 |
| - 'res/js/core/http/PydioApi.js', |
177 |
| - 'res/js/core/model/Action.js', |
178 |
| - 'res/js/core/model/Controller.js', |
179 |
| - 'res/js/core/model/PydioDataModel.js', |
180 |
| - 'res/js/core/model/Registry.js', |
181 |
| - 'res/js/ui/prototype/class.AjxpDraggable.js', |
182 |
| - 'res/js/ui/prototype/class.AjxpSortable.js', |
183 |
| - 'res/js/ui/prototype/class.AjxpTabulator.js', |
184 |
| - 'res/js/ui/prototype/class.VisibilityToggler.js', |
185 |
| - 'res/js/ui/prototype/class.AjxpSimpleTabs.js', |
186 |
| - 'res/js/ui/prototype/class.RepositorySelect.js', |
187 |
| - 'res/js/ui/prototype/class.RepositorySimpleLabel.js', |
188 |
| - 'res/js/ui/prototype/class.Breadcrumb.js', |
189 |
| - 'res/js/ui/prototype/class.LocationBar.js', |
190 |
| - 'res/js/ui/prototype/class.UserWidget.js', |
191 |
| - 'res/js/ui/prototype/class.LogoWidget.js', |
192 |
| - 'res/js/ui/prototype/class.AjxpAutoCompleter.js', |
193 |
| - 'res/js/ui/prototype/class.AjxpUsersCompleter.js', |
194 |
| - 'res/js/ui/prototype/class.TreeSelector.js', |
195 |
| - 'res/js/ui/prototype/class.SliderInput.js', |
196 |
| - 'res/js/ui/prototype/class.ActionsToolbar.js', |
197 |
| - 'res/js/ui/prototype/class.BackgroundManagerPane.js', |
198 |
| - 'res/js/ui/prototype/class.HeaderResizer.js', |
199 |
| - 'res/js/ui/prototype/class.PreviewFactory.js', |
200 |
| - 'res/js/ui/prototype/class.FilesList.js', |
201 |
| - 'res/js/ui/prototype/class.FoldersTree.js', |
202 |
| - 'res/js/ui/prototype/class.SearchEngine.js', |
203 |
| - 'res/js/ui/prototype/class.FetchedResultPane.js', |
204 |
| - 'res/js/ui/prototype/class.InfoPanel.js', |
205 |
| - 'res/js/ui/prototype/class.PropertyPanel.js', |
206 |
| - 'res/js/ui/prototype/class.AbstractEditor.js', |
207 |
| - 'res/js/ui/prototype/class.Modal.js', |
208 |
| - 'res/js/ui/prototype/class.BookmarksBar.js', |
209 |
| - 'res/js/ui/prototype/class.FormManager.js', |
210 |
| - 'res/js/ui/prototype/class.DataModelProperty.js', |
211 |
| - 'res/js/ui/prototype/class.MultiDownloader.js', |
212 |
| - 'res/js/ui/prototype/class.ActivityMonitor.js', |
213 |
| - 'res/js/ui/prototype/class.AjxpReactComponent.js', |
214 |
| - 'res/js/ui/prototype/class.PydioUI.js', |
215 |
| - 'res/js/core/Pydio.js' |
216 |
| - ], |
217 |
| - tasks: ['uglify'], |
218 |
| - options: { |
219 |
| - spawn: false |
| 141 | + watch: { |
| 142 | + js: { |
| 143 | + files: [ |
| 144 | + 'res/js/vendor/modernizr/modernizr.min.js', |
| 145 | + 'res/js/core/lang/Observable.js', |
| 146 | + 'res/js/core/lang/Logger.js', |
| 147 | + 'res/js/core/util/LangUtils.js', |
| 148 | + 'res/js/core/util/XMLUtils.js', |
| 149 | + 'res/js/core/util/PathUtils.js', |
| 150 | + 'res/js/core/util/HasherUtils.js', |
| 151 | + 'res/js/core/model/Router.js', |
| 152 | + 'res/js/core/model/AjxpNode.js', |
| 153 | + 'res/js/ui/prototype/util/ajxp_utils.js', |
| 154 | + 'res/js/ui/prototype/interfaces/class.IAjxpNodeProvider.js', |
| 155 | + 'res/js/ui/prototype/interfaces/class.IAjxpWidget.js', |
| 156 | + 'res/js/ui/prototype/interfaces/class.IActionProvider.js', |
| 157 | + 'res/js/ui/prototype/interfaces/class.IFocusable.js', |
| 158 | + 'res/js/ui/prototype/interfaces/class.IContextMenuable.js', |
| 159 | + 'res/js/ui/prototype/class.AjxpPane.js', |
| 160 | + 'res/js/vendor/prototype/webfx.selectable.js', |
| 161 | + 'res/js/vendor/prototype/webfx.sortable.js', |
| 162 | + 'res/js/vendor/prototype/proto.menu.js', |
| 163 | + 'res/js/vendor/prototype/splitter.js', |
| 164 | + 'res/js/vendor/prototype/cookiejar.js', |
| 165 | + 'res/js/vendor/prototype/protopass.js', |
| 166 | + 'res/js/vendor/prototype/resizable.js', |
| 167 | + 'res/js/vendor/prototype/es6compat.js', |
| 168 | + 'res/js/vendor/leightbox/lightbox.js', |
| 169 | + 'res/js/vendor/scriptaculous/src/builder.js', |
| 170 | + 'res/js/vendor/scriptaculous/src/effects.js', |
| 171 | + 'res/js/vendor/scriptaculous/src/dragdrop.js', |
| 172 | + 'res/js/vendor/scriptaculous/src/controls.js', |
| 173 | + 'res/js/vendor/scriptaculous/src/slider.js', |
| 174 | + 'res/js/vendor/prototype/cssfx.js', |
| 175 | + 'res/js/vendor/prototype/proto.scroller.js', |
| 176 | + 'res/js/vendor/prototype/carousel.js', |
| 177 | + 'res/js/vendor/prototype/accordion.js', |
| 178 | + 'res/js/vendor/webfx/xtree.js', |
| 179 | + 'res/js/vendor/webfx/ajxptree.js', |
| 180 | + 'res/js/vendor/chosen/event.simulate.js', |
| 181 | + 'res/js/vendor/chosen/chosen.proto.js', |
| 182 | + 'res/js/core/model/User.js', |
| 183 | + 'res/js/core/http/ResourcesManager.js', |
| 184 | + 'res/js/core/model/RemoteNodeProvider.js', |
| 185 | + 'res/js/core/model/EmptyNodeProvider.js', |
| 186 | + 'res/js/core/model/Repository.js', |
| 187 | + 'res/js/core/model/BackgroundTasksManager.js', |
| 188 | + 'res/js/core/http/PydioApi.js', |
| 189 | + 'res/js/core/model/Action.js', |
| 190 | + 'res/js/core/model/Controller.js', |
| 191 | + 'res/js/core/model/PydioDataModel.js', |
| 192 | + 'res/js/core/model/Registry.js', |
| 193 | + 'res/js/ui/prototype/class.AjxpDraggable.js', |
| 194 | + 'res/js/ui/prototype/class.AjxpSortable.js', |
| 195 | + 'res/js/ui/prototype/class.AjxpTabulator.js', |
| 196 | + 'res/js/ui/prototype/class.VisibilityToggler.js', |
| 197 | + 'res/js/ui/prototype/class.AjxpSimpleTabs.js', |
| 198 | + 'res/js/ui/prototype/class.RepositorySelect.js', |
| 199 | + 'res/js/ui/prototype/class.RepositorySimpleLabel.js', |
| 200 | + 'res/js/ui/prototype/class.Breadcrumb.js', |
| 201 | + 'res/js/ui/prototype/class.LocationBar.js', |
| 202 | + 'res/js/ui/prototype/class.UserWidget.js', |
| 203 | + 'res/js/ui/prototype/class.LogoWidget.js', |
| 204 | + 'res/js/ui/prototype/class.AjxpAutoCompleter.js', |
| 205 | + 'res/js/ui/prototype/class.AjxpUsersCompleter.js', |
| 206 | + 'res/js/ui/prototype/class.TreeSelector.js', |
| 207 | + 'res/js/ui/prototype/class.SliderInput.js', |
| 208 | + 'res/js/ui/prototype/class.ActionsToolbar.js', |
| 209 | + 'res/js/ui/prototype/class.BackgroundManagerPane.js', |
| 210 | + 'res/js/ui/prototype/class.HeaderResizer.js', |
| 211 | + 'res/js/ui/prototype/class.PreviewFactory.js', |
| 212 | + 'res/js/ui/prototype/class.FilesList.js', |
| 213 | + 'res/js/ui/prototype/class.FoldersTree.js', |
| 214 | + 'res/js/ui/prototype/class.SearchEngine.js', |
| 215 | + 'res/js/ui/prototype/class.FetchedResultPane.js', |
| 216 | + 'res/js/ui/prototype/class.InfoPanel.js', |
| 217 | + 'res/js/ui/prototype/class.PropertyPanel.js', |
| 218 | + 'res/js/ui/prototype/class.AbstractEditor.js', |
| 219 | + 'res/js/ui/prototype/class.Modal.js', |
| 220 | + 'res/js/ui/prototype/class.BookmarksBar.js', |
| 221 | + 'res/js/ui/prototype/class.FormManager.js', |
| 222 | + 'res/js/ui/prototype/class.DataModelProperty.js', |
| 223 | + 'res/js/ui/prototype/class.MultiDownloader.js', |
| 224 | + 'res/js/ui/prototype/class.ActivityMonitor.js', |
| 225 | + 'res/js/ui/prototype/class.AjxpReactComponent.js', |
| 226 | + 'res/js/ui/prototype/class.PydioUI.js', |
| 227 | + 'res/js/core/Pydio.js' |
| 228 | + ], |
| 229 | + tasks: ['uglify'], |
| 230 | + options: { |
| 231 | + spawn: false |
| 232 | + } |
220 | 233 | }
|
221 | 234 | }
|
222 |
| - } |
223 |
| - }); |
224 |
| - |
| 235 | + }); |
| 236 | + grunt.loadNpmTasks('grunt-env'); |
225 | 237 | grunt.loadNpmTasks('grunt-browserify');
|
226 | 238 | grunt.loadNpmTasks('grunt-babel');
|
227 | 239 | grunt.loadNpmTasks('grunt-contrib-uglify');
|
228 | 240 | grunt.loadNpmTasks('grunt-contrib-watch');
|
229 |
| - grunt.registerTask('default', ['babel','uglify', 'browserify']); |
| 241 | + grunt.registerTask('default', [ |
| 242 | + 'env:build', |
| 243 | + 'babel', |
| 244 | + 'uglify:js', |
| 245 | + 'browserify', |
| 246 | + 'uglify:nodejs' |
| 247 | + ]); |
230 | 248 | };
|
231 | 249 |
|
0 commit comments