diff --git a/build/code/DependenciesReporter.js b/build/code/DependenciesReporter.js index 3fee38e..cec3ccb 100644 --- a/build/code/DependenciesReporter.js +++ b/build/code/DependenciesReporter.js @@ -36,8 +36,8 @@ DependenciesReporter = (function() { DT = Dependency.TYPES; _B.okv(dependencyTypesMessages, DT.global, { - header: "Global-looking dependencies (not checked in this version):", - footer: "They are added as-is." + header: "Global-looking dependencies (those without fileRelative (eg `./`) & not present in bundle's root):", + footer: "Note: When executing on plain nodejs, globals are `require`d as is.\n When executing on Web/AMD or uRequire/UMD they use `rjs.baseUrl`/`rjs.paths`, if present." }, DT.notFoundInBundle, { header: "\u001b[31m Bundle-looking dependencies not found in bundle:", footer: "They are added as-is.\u001b[0m" @@ -58,7 +58,7 @@ DependenciesReporter = (function() { _results = []; for (dependency in dependenciesFound) { moduleFiles = dependenciesFound[dependency]; - _results.push("'" + dependency + "' @ [ " + ((function() { + _results.push("'" + dependency + "' dependendency appears in modules: [ " + ((function() { var _i, _len, _results1; _results1 = []; for (_i = 0, _len = moduleFiles.length; _i < _len; _i++) { diff --git a/build/code/process/Bundle.js b/build/code/process/Bundle.js index 4e54ee1..7299a3d 100644 --- a/build/code/process/Bundle.js +++ b/build/code/process/Bundle.js @@ -221,7 +221,7 @@ Bundle = (function(_super) { } report = this.reporter.getReport(this.build.interestingDepTypes); if (!_.isEmpty(report)) { - l.log('\n########### urequire, final report ########### :\n', report); + l.log('Report for this `build`:\n', report); } if (this.build.template.name === 'combined') { if (haveChanges) { @@ -385,7 +385,14 @@ Bundle = (function(_super) { return setTimeout((function() { l.debug(60, 'Checking r.js output file...'); if (_fs.existsSync(build.combinedFile)) { - l.verbose("Combined file '" + build.combinedFile + "' written successfully."); + l.log("Combined file '" + build.combinedFile + "' written successfully."); + if (!_.isEmpty(_this.getDepsVars({ + depType: 'global' + }))) { + l.log("Global bindinds: make sure the following global dependencies\n\n" + (l.prettify(_this.getDepsVars({ + depType: 'global' + }))) + "\n\nare available when combined script '" + build.combinedFile + "' is running on:\n\n a) nodejs: they should exist as a local `nodes_modules`.\n\n b) Web/AMD: they should be declared as `rjs.paths` (or `rjs.baseUrl`)\n\n c) Web/Script: the binded variables (eg '_' or '$')\n must be a globally loaded (i.e `window.$`) BEFORE loading '" + build.combinedFile + "'"); + } if (Logger.prototype.debugLevel < 50) { l.debug(40, "Deleting temporary directory '" + build.outputPath + "'."); _wrench.rmdirSyncRecursive(build.outputPath); diff --git a/build/code/process/UModule.js b/build/code/process/UModule.js index b46505d..5ed7fa9 100644 --- a/build/code/process/UModule.js +++ b/build/code/process/UModule.js @@ -205,7 +205,7 @@ module.exports = UModule = (function() { }).call(this), this.arrayDeps = _ref1[0], this.requireDeps = _ref1[1], this.asyncDeps = _ref1[2]; this.moduleInfo.factoryBody = moduleManipulator.getFactoryWithReplacedRequires(requireReplacements); if (this.bundle.reporter) { - _ref2 = [_.pick(this.moduleInfo, this.bundle.reporter.interestingDepTypes)]; + _ref2 = [_.pick(this.moduleInfo, this.bundle.reporter.reportedDepTypes)]; for (_j = 0, _len1 = _ref2.length; _j < _len1; _j++) { repData = _ref2[_j]; this.bundle.reporter.addReportData(repData, this.modulePath); diff --git a/build/code/urequireCmd.js b/build/code/urequireCmd.js index b211ebf..8e55d86 100644 --- a/build/code/urequireCmd.js +++ b/build/code/urequireCmd.js @@ -1,8 +1,8 @@ #!/usr/bin/env node /*! -* urequire - version 0.3.0alpha19 -* Compiled on 2013-02-04 +* urequire - version 0.3.0alpha20 +* Compiled on 2013-02-05 * git://github.com/anodynos/urequire * Copyright(c) 2013 Agelos Pikoulas (agelos.pikoulas@gmail.com ) * Licensed MIT http://www.opensource.org/licenses/mit-license.php diff --git a/build/code/utils/Logger.js b/build/code/utils/Logger.js index 0ee3b46..31af0a2 100644 --- a/build/code/utils/Logger.js +++ b/build/code/utils/Logger.js @@ -1,4 +1,4 @@ -var VERSION = '0.3.0alpha19'; //injected by grunt:concat +var VERSION = '0.3.0alpha20'; //injected by grunt:concat // Generated by CoffeeScript 1.4.0 var Logger, _, diff --git a/package.json b/package.json index 3ce6e1c..036c348 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "urequire", "description": "Module converter: write modular code once, convert to UMD and run/test on AMD (browser/requirejs) & nodejs.", - "version": "0.3.0alpha19", + "version": "0.3.0alpha20", "homepage": "https://github.com/anodynos/urequire", "author": { "name": "Agelos Pikoulas", diff --git a/source/code/DependenciesReporter.coffee b/source/code/DependenciesReporter.coffee index 907a9ba..de420b8 100644 --- a/source/code/DependenciesReporter.coffee +++ b/source/code/DependenciesReporter.coffee @@ -27,8 +27,11 @@ class DependenciesReporter DT = Dependency.TYPES _B.okv dependencyTypesMessages, DT.global, - header: "Global-looking dependencies (not checked in this version):" - footer: "They are added as-is." + header: "Global-looking dependencies (those without fileRelative (eg `./`) & not present in bundle's root):" + footer: """ + Note: When executing on plain nodejs, globals are `require`d as is. + When executing on Web/AMD or uRequire/UMD they use `rjs.baseUrl`/`rjs.paths`, if present. + """ DT.notFoundInBundle, header: "\u001b[31m Bundle-looking dependencies not found in bundle:", @@ -46,7 +49,7 @@ class DependenciesReporter reportTemplate: (texts, dependenciesFound)-> """ \n#{texts.header} - #{ "'#{dependency}' @ [ + #{ "'#{dependency}' dependendency appears in modules: [ #{("\n '" + mf + "'" for mf in moduleFiles)}\n ]\n" for dependency, moduleFiles of dependenciesFound }#{ diff --git a/source/code/process/Bundle.coffee b/source/code/process/Bundle.coffee index 7eec2ed..49c2146 100644 --- a/source/code/process/Bundle.coffee +++ b/source/code/process/Bundle.coffee @@ -146,9 +146,9 @@ class Bundle extends BundleBase @build.out uModule.modulePath, uModule.convertedJs # @todo:5 else if String, output to this file ? - report = @reporter.getReport(@build.interestingDepTypes) + report = @reporter.getReport @build.interestingDepTypes if not _.isEmpty(report) - l.log '\n########### urequire, final report ########### :\n', report + l.log 'Report for this `build`:\n', report if @build.template.name is 'combined' if haveChanges @@ -158,7 +158,7 @@ class Bundle extends BundleBase else @build.done true - getRequireJSConfig: ()-> #@todo: remove & fix this! + getRequireJSConfig: ()-> #@todo:(7 5 2) remove & fix this! paths: text: "requirejs_plugins/text" json: "requirejs_plugins/json" @@ -293,7 +293,23 @@ class Bundle extends BundleBase setTimeout (=> l.debug 60, 'Checking r.js output file...' if _fs.existsSync build.combinedFile - l.verbose "Combined file '#{build.combinedFile}' written successfully." + l.log "Combined file '#{build.combinedFile}' written successfully." + + if not _.isEmpty(@getDepsVars depType:'global') + l.log """ + Global bindinds: make sure the following global dependencies + + #{l.prettify @getDepsVars depType:'global'} + + are available when combined script '#{build.combinedFile}' is running on: + + a) nodejs: they should exist as a local `nodes_modules`. + + b) Web/AMD: they should be declared as `rjs.paths` (or `rjs.baseUrl`) + + c) Web/Script: the binded variables (eg '_' or '$') + must be a globally loaded (i.e `window.$`) BEFORE loading '#{build.combinedFile}' + """ # delete outputPath, used as temp directory with individual AMD files if Logger::debugLevel < 50 diff --git a/source/code/process/UModule.coffee b/source/code/process/UModule.coffee index 5bd4e80..57d746c 100644 --- a/source/code/process/UModule.coffee +++ b/source/code/process/UModule.coffee @@ -126,7 +126,7 @@ class UModule # add remaining dependencies (eg 'untrustedRequireDependencies') to DependenciesReport if @bundle.reporter - for repData in [ (_.pick @moduleInfo, @bundle.reporter.interestingDepTypes) ] + for repData in [ (_.pick @moduleInfo, @bundle.reporter.reportedDepTypes) ] @bundle.reporter.addReportData repData, @modulePath # our final 'templateInfo' information follows