Browse Source

Move build instructions from Gruntfile to Makefile

Also, remove build-no-locales-no-otr.js
JC Brand 9 năm trước cách đây
mục cha
commit
77a563955e
7 tập tin đã thay đổi với 52 bổ sung71 xóa
  1. 0 33
      Gruntfile.js
  2. 34 15
      Makefile
  3. 12 4
      Makefile.win
  4. 1 2
      builds/converse-no-dependencies.js
  5. 3 5
      package.json
  6. 2 1
      src/build-no-jquery.js
  7. 0 11
      src/build-no-locales-no-otr.js

+ 0 - 33
Gruntfile.js

@@ -1,6 +1,4 @@
-/*global process */
 module.exports = function(grunt) {
-    var path = require('path');
     grunt.initConfig({
         jst: {
             compile: {
@@ -38,35 +36,4 @@ module.exports = function(grunt) {
     });
     grunt.loadNpmTasks('grunt-contrib-cssmin');
     grunt.loadNpmTasks('grunt-contrib-jst');
-    grunt.loadNpmTasks('grunt-json');
-    grunt.loadNpmTasks('grunt-contrib-requirejs');
-
-    grunt.registerTask('jsmin', 'Create a new release', function () {
-        var done = this.async();
-        var child_process = require('child_process');
-        var exec = child_process.exec;
-        var callback = function (err, stdout, stderr) {
-            grunt.log.write(stdout);
-            if (err) {
-                grunt.log.write('build failed with error code '+err.code);
-                grunt.log.write(stderr);
-                done(false);
-            } else
-                done();
-        };
-        var rjsext = (process.platform === 'win32') ? '.cmd' : '';
-        var rjs = '"' + path.resolve('./node_modules/.bin/r.js' + rjsext) + '"';
-        exec(rjs + ' -o src/build.js && ' +
-             rjs + ' -o src/build.js optimize=none out=builds/converse.js && ' +
-             rjs + ' -o src/build-no-jquery.js &&' +
-             rjs + ' -o src/build-no-jquery.js optimize=none out=builds/converse.nojquery.js && ' +
-             rjs + ' -o src/build-no-dependencies.js &&' +
-             rjs + ' -o src/build-no-dependencies.js optimize=none out=builds/converse-no-dependencies.js && ' +
-             rjs + ' -o src/build-no-locales-no-otr.js && ' +
-             rjs + ' -o src/build-no-locales-no-otr.js optimize=none out=builds/converse-no-locales-no-otr.js', callback);
-            // XXX: It might be possible to not have separate build config files. For example:
-            // 'r.js -o src/build.js paths.converse-dependencies=src/deps-no-otr paths.locales=locale/nolocales out=builds/converse-no-locales-no-otr.min.js'
-    });
-
-    grunt.registerTask('minify', 'Create a new minified builds', ['cssmin', 'jsmin']);
 };

+ 34 - 15
Makefile

@@ -21,8 +21,6 @@ JSHINTEXCEPTIONS = $(GENERATED) \
 		   src/crypto.js \
 		   src/build-no-jquery.js \
 		   src/build-no-dependencies.js \
-		   src/build-no-locales-no-otr.js \
-		   src/build-no-otr.js \
 		   src/build.js \
 		   src/bigint.js
 CHECKSOURCES	= $(filter-out $(JSHINTEXCEPTIONS),$(SOURCES))
@@ -109,38 +107,58 @@ stamp-bower: stamp-npm bower.json
 	$(BOWER) install
 	touch stamp-bower
 
-stamp-bundler:
+stamp-bundler: Gemfile
 	mkdir -p .bundle
 	gem install --user bundler --bindir .bundle/bin
 	$(BUNDLE) install --path .bundle --binstubs .bundle/bin
 	touch stamp-bundler
 
 .PHONY: clean
-clean::
-	rm -f stamp-npm stamp-bower stamp-bundler
-	rm -rf node_modules components .bundle
+clean:
+	-rm -f stamp-npm stamp-bower stamp-bundler
+	-rm -rf node_modules components .bundle
 
 .PHONY: dev
-dev: stamp-bower stamp-bundler converse
+dev: stamp-bower stamp-bundler build
 
 ########################################################################
 ## Builds
 
 .PHONY: css
-css: converse.css
+css: css/converse.css
 
-converse.css:: stamp-bundler stamp-bower
+css/converse.css:: stamp-bundler stamp-bower sass
 	$(SASS) -I ./components/bourbon/app/assets/stylesheets/ sass/converse.scss css/converse.css
 
 .PHONY: watch
 watch: stamp-bundler
 	$(SASS) --watch -I ./components/bourbon/app/assets/stylesheets/ sass/converse.scss:css/converse.css
 
+BUILDS = builds/converse.js \
+		 builds/converse.min.js \
+         builds/converse.nojquery.js \
+ 		 builds/converse.nojquery.min.js \
+		 builds/converse-no-dependencies.min.js \
+		 builds/converse-no-dependencies.js
+
+# XXX This can be updated to use uglify to minimize instead of letting r.js run twice per file
+builds/converse.min.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build.js
+builds/converse.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build.js optimize=none out=builds/converse.js
+builds/converse.nojquery.min.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build-no-jquery.js
+builds/converse.nojquery.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build-no-jquery.js optimize=none out=builds/converse.nojquery.js
+builds/converse-no-dependencies.min.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build-no-dependencies.js
+builds/converse-no-dependencies.js: stamp-bower src locale components *.js
+	$(RJS) -o src/build-no-dependencies.js optimize=none out=builds/converse-no-dependencies.js
+
 .PHONY: jsmin
-jsmin:
-	$(GRUNT) jsmin
+jsmin: $(BUILDS)
 
-.PHONY: watch
+.PHONY: cssmin 
 cssmin: stamp-npm
 	$(GRUNT) cssmin
 
@@ -152,17 +170,18 @@ converse:: stamp-npm
 .PHONY: build
 build:: stamp-npm
 	$(GRUNT) jst
-	$(GRUNT) minify
+	$(GRUNT) cssmin
+	make jsmin
 
 ########################################################################
 ## Tests
 
 .PHONY: jshint
-jshint: stamp-npm
+jshint: stamp-bower
 	$(JSHINT) --config jshintrc $(CHECKSOURCES)
 
 .PHONY: watch
-check: stamp-npm jshint
+check: stamp-bower jshint
 	$(PHANTOMJS) node_modules/phantom-jasmine/lib/run_jasmine_test.coffee tests.html
 
 ########################################################################

+ 12 - 4
Makefile.win

@@ -1,7 +1,8 @@
 # You can set these variables from the command line.
 GRUNT   		?= node_modules\.bin\grunt.cmd
-BOWER                   ?= node_modules\.bin\bower.cmd
-PHANTOMJS               ?= node_modules\.bin\phantomjs.cmd
+BOWER           ?= node_modules\.bin\bower.cmd
+PHANTOMJS       ?= node_modules\.bin\phantomjs.cmd
+RJS				?= ./node_modules/.bin/r.js.cmd
 SASS 			?= sass 
 RMRF 			?= rmdir /q /s 
 RMF 			?= del /q 
@@ -51,9 +52,16 @@ dev: clean
 css::
 	$(SASS) sass/converse.scss > css/converse.css
 
-build::
+.PHONY: build
+build:: stamp-npm
 	$(GRUNT) jst
-	$(GRUNT) minify
+	$(GRUNT) cssmin
+	$(RJS) -o src/build.js
+	$(RJS) -o src/build.js optimize=none out=builds/converse.js
+	$(RJS) -o src/build-no-jquery.js
+	$(RJS) -o src/build-no-jquery.js optimize=none out=builds/converse.nojquery.js
+	$(RJS) -o src/build-no-dependencies.js
+	$(RJS) -o src/build-no-dependencies.js optimize=none out=builds/converse-no-dependencies.js
 
 ########################################################################
 ## Tests

+ 1 - 2
builds/converse-no-dependencies.js

@@ -10815,8 +10815,7 @@ define("converse", [
 
 
 require(["converse"]);
-/*global jQuery, _, moment */
-
+/*global jQuery, _, moment, Strophe, $build, $iq, $msg, $pres, SHA1, Base64, MD5, DSA, OTR */
 define('jquery', [], function () { return jQuery; });
 define('jquery.browser', [], function () { return jQuery; });
 define('typeahead', [], function () { return jQuery; });

+ 3 - 5
package.json

@@ -37,17 +37,15 @@
     "grunt-cli": "~0.1.13",
     "grunt-contrib-cssmin": "~0.9.0",
     "grunt-contrib-jst": "~0.6.0",
-    "grunt-contrib-requirejs": "~0.4.3",
-    "grunt-json": "^0.1.3",
-    "grunt-touch": "^0.1.0",
     "http-server": "^0.7.4",
+    "jshint": "^2.8.0",
     "less": "~1.7.0",
     "phantom-jasmine": "0.1.8",
     "phantomjs": "~1.9.7-1",
-    "po2json": "^0.3.0"
+    "po2json": "^0.3.0",
+    "uglify-js": "1.3.0"
   },
   "dependencies": {
-    "jshint": "^2.8.0",
     "requirejs": "~2.1.15"
   }
 }

+ 2 - 1
src/build-no-jquery.js

@@ -2,7 +2,8 @@
     baseUrl: "../",
     name: "components/almond/almond.js",
     out: "../builds/converse.nojquery.min.js",
-    include: ['main'],
+    include: ['converse'],
     exclude: ['jquery', 'jquery-private'],
+    insertRequire: ['converse'],
     mainConfigFile: '../main.js'
 })

+ 0 - 11
src/build-no-locales-no-otr.js

@@ -1,11 +0,0 @@
-({
-    baseUrl: "../",
-    name: "components/almond/almond.js",
-    out: "../builds/converse-no-locales-no-otr.min.js",
-    include: ['main'],
-    mainConfigFile: '../main.js',
-    paths: {
-        "moment_with_locales":    "components/momentjs/moment",
-        "locales":                "locale/nolocales"
-    }
-})