Skip to content

Commit 02ae8a2

Browse files
committed
CB-9036 fixed browserify cordova requires
1 parent 0b0dee5 commit 02ae8a2

File tree

2 files changed

+25
-19
lines changed

2 files changed

+25
-19
lines changed

cordova-lib/src/plugman/prepare-browserify.js

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,16 +214,16 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir, www_
214214
// Handles clobbers and merges
215215
// Writes needed requires to cordovaRequires Array
216216
// which gets written to cordova_requires.js which
217-
// gets added to the browserify build
217+
// gets added to the browserify bundle.
218218
var namespace;
219219
module.clobbers.forEach(function(child) {
220-
namespace = prepareNamespace(child.target, 'c');
221-
if(cordovaRequires.indexOf(namespace) !== -1) {
220+
namespace = prepareNamespace(child.target, true, scriptPath);
221+
if(cordovaRequires.indexOf(namespace) === -1) {
222222
cordovaRequires.push(namespace);
223223
}
224224
});
225225
module.merges.forEach(function(child) {
226-
namespace = prepareNamespace(child.target, 'm');
226+
namespace = prepareNamespace(child.target, false, scriptPath);
227227
if(cordovaRequires.indexOf(namespace) === -1) {
228228
cordovaRequires.push(namespace);
229229
}
@@ -239,17 +239,20 @@ module.exports = function handlePrepare(project_dir, platform, plugins_dir, www_
239239
events.emit('verbose', 'Writing out cordova_plugins.js...');
240240
fs.writeFileSync(path.join(wwwDir, 'cordova_plugins.js'), cordova_plugins, 'utf8');
241241

242+
//Write out cordova_requires.js.
242243
if(cordovaRequires.length > 0) {
243244
var cordovaRequiresString = cordovaRequires.join('\n');
244245
events.emit('verbose', 'Writing out cordova_requires.js...');
245246
fs.writeFileSync(path.join(wwwDir, 'cordova_requires.js'), cordovaRequiresString, 'utf8');
246-
//add it to browserify
247+
//add it to the browserify bundle
247248
libraryRelease.add(path.join(wwwDir, 'cordova_requires.js'));
248249
}
249-
250+
251+
//run transforms on plugin files
250252
libraryRelease.transform(requireTr.transform);
251253

252254
scripts.forEach(function(script) {
255+
//add every plugin javascript file to browserify bundle
253256
libraryRelease.add(script);
254257
});
255258

cordova-lib/src/plugman/util/prepare-namespace.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,17 @@
2020

2121
var util = require('util');
2222

23-
// FIXME this is extremely guettho
23+
/**
24+
* Used to handle plugin merges and clobbers
25+
* @param {string} target - target namespace to clobber or merge with
26+
* @param {boolean} doClobber - Determines if clobbers or merges. Clobbers if true.
27+
* @param {string} scriptPath - Path to the javascript file
28+
*/
2429
module.exports = prepare_namespace;
25-
function prepare_namespace(target, method) {
30+
31+
function prepare_namespace(target, doClobber, scriptPath) {
2632
var old = target;
2733
target = target.replace(/^window(\.)?/, '');
28-
2934
var lastDot = target.lastIndexOf('.');
3035
var lastName = target.substr(lastDot + 1);
3136
var props = target.split('.');
@@ -37,24 +42,22 @@ function prepare_namespace(target, method) {
3742
code += util.format('window.%s = window.%s || {};\n', sub, sub);
3843
}
3944
}
40-
4145
props.unshift('window');
4246
var object = props.slice(0, props.length - 1).join('.');
43-
// code = '\n';
44-
if(method === 'c') {
47+
if(doClobber === true) {
4548
return util.format(
46-
"%s\nrequire('cordova/builder').assignOrWrapInDeprecateGetter(%s, '%s', module.exports);",
49+
"%s\n;require('cordova/builder').assignOrWrapInDeprecateGetter(%s, '%s', require('%s'));",
4750
code,
4851
object,
49-
lastName
52+
lastName,
53+
scriptPath
5054
);
51-
} else if(method === 'm' && old !== '') {
55+
} else if(old !== '') {
5256
return util.format(
53-
"%s\n;require('cordova/builder').recursiveMerge(%s, module.exports);",
57+
"%s\n;require('cordova/builder').recursiveMerge(%s, require('%s'));",
5458
code,
55-
old
59+
old,
60+
scriptPath
5661
);
57-
} else {
58-
return '// no clobber or merges';
5962
}
6063
}

0 commit comments

Comments
 (0)