Sfoglia il codice sorgente

Merge pull request #571 from herby/requirejs-wip

updated amdefine; much simpler injecting now
Herbert Vojčík 11 anni fa
parent
commit
0168d418e4
2 ha cambiato i file con 5 aggiunte e 25 eliminazioni
  1. 4 24
      bin/amberc.js
  2. 1 1
      package.json

+ 4 - 24
bin/amberc.js

@@ -57,27 +57,6 @@ function always_resolve(callback) {
  * // which can either be stored in a file or interpreted with eval().
  */
 function createConcatenator () {
-	var defineAmdDefine = function () {
-		var path = require('path');
-		return ($AMDEFINE_SRC$)();
-	};
-
-	// The createAmdefineString is hack to help injecting amdefine into the concatenated output.
-	//
-	// Usually, the line 'var define = require('amdefine')(module), requirejs = define.require;'
-	// is needed when using amdefine with node and npm installed.
-	// var f = require('amdefine') itself returns one big self-sufficient function which must be called
-	// as f(module) to get the define you can use.
-	//
-	// However, amdefine needs the definition of the 'path' variable (node's internal 'path' module).
-	// To create this dependency the defineAmdDefine() function is used which defines
-	// the path variable first and adds a placeholder for the amdefine function/sourcecode.
-	// The defineAmdDefine() function is then converted to its string representation
-	// and the placeholder is replaced with the actual sourcecode of the amdefine function.
-	var createAmdefineString = function() {
-		return ('' + defineAmdDefine).replace('$AMDEFINE_SRC$', '' + require('amdefine'));
-	}
-
 	return {
 		elements: [],
 		ids: [],
@@ -92,7 +71,7 @@ function createConcatenator () {
 		},
 		start: function () {
 			this.add(
-				'var define = (' + createAmdefineString() + ')(), requirejs = define.require;',
+				'var define = (' + require('amdefine') + ')(), requirejs = define.require;',
 				'define("amber_vm/browser-compatibility", [], {});'
 			);
 		},
@@ -101,7 +80,8 @@ function createConcatenator () {
 				'define("amber_vm/_init", ["amber_vm/smalltalk","' + this.ids.join('","') + '"], function (smalltalk) {',
 				'smalltalk.initialize();',
 				realWork,
-				'});', 'requirejs("amber_vm/_init");'
+				'});',
+				'requirejs("amber_vm/_init");'
 			);
 		},
 		toString: function () {
@@ -559,7 +539,7 @@ AmberC.prototype.category_export = function() {
 		var smalltalk = defaults.smalltalk;
 		var pluggableExporter = smalltalk.PluggableExporter;
 		var packageObject = smalltalk.Package._named_(category);
-        packageObject._amdNamespace_("amber");
+		packageObject._amdNamespace_("amber");
 		fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) {
 			pluggableExporter._newUsing_(smalltalk.Exporter._amdRecipe())._exportPackage_on_(packageObject, stream); }), function(err) {
 			if (defaults.deploy) {

+ 1 - 1
package.json

@@ -39,6 +39,6 @@
     "grunt-contrib-jshint": "~0.3.0",
     "grunt-image-embed": "~0.1.3",
     "grunt-contrib-mincss": "~0.3.2",
-    "amdefine": "0.0.6"
+    "amdefine": "0.0.8"
   }
 }