From 45079a9b5caa3a530203c7d7afa566c746274248 Mon Sep 17 00:00:00 2001 From: Atul Varma Date: Tue, 15 Jan 2013 08:12:23 -0500 Subject: [PATCH] build-require.js works again. --- build-i18n.js | 3 --- js/require-config.js | 8 ++++++-- js/slowparse-errors/html-to-i18n-bundle.js | 5 ++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build-i18n.js b/build-i18n.js index 9b2c076..3f5236c 100644 --- a/build-i18n.js +++ b/build-i18n.js @@ -12,9 +12,6 @@ var requirejs = require('requirejs'); var requireConfig = require('./js/require-config'); var bundles = {}; -// For some reason r.js doesn't like our default underscore shim. -requireConfig.shim['underscore'].exports = '_'; - requirejs.config(requireConfig); NLS_PATHS.forEach(function(path) { diff --git a/js/require-config.js b/js/require-config.js index 31d49dc..fec83aa 100644 --- a/js/require-config.js +++ b/js/require-config.js @@ -73,9 +73,13 @@ var require = { } }; -if (typeof(module) == 'object' && module.exports) +if (typeof(module) == 'object' && module.exports) { + // We're running in node. module.exports = require; -else (function() { + // For some reason requirejs in node doesn't like shim function exports. + require.shim['underscore'].exports = '_'; + require.shim['backbone'].exports = 'Backbone'; +} else (function() { var RE = /^(https?:)\/\/([^\/]+)\/(.*)\/require-config\.js$/; var me = document.querySelector('script[src$="require-config.js"]'); var console = window.console || {log: function() {}}; diff --git a/js/slowparse-errors/html-to-i18n-bundle.js b/js/slowparse-errors/html-to-i18n-bundle.js index 3bb8a05..a5c66b0 100644 --- a/js/slowparse-errors/html-to-i18n-bundle.js +++ b/js/slowparse-errors/html-to-i18n-bundle.js @@ -2,7 +2,10 @@ define(function() { function getDocument() { if (typeof(document) == "undefined") { // We're being run in node, so make a document using jsdom. - var jsdom = require("jsdom").jsdom; + // Rename require to syncRequire so the r.js optimizer doesn't + // think the Web version of this file needs jsdom. + var syncRequire = require; + var jsdom = syncRequire("jsdom").jsdom; var doc = jsdom('', null, { features: { FetchExternalResources: false,