Move snippets and adjust code to make modularize work.

Former-commit-id: 9b0ebc2bca42777f8eab1026c93ece3fb2d8deb6
This commit is contained in:
John-David Dalton
2013-06-30 22:02:39 -07:00
parent 946029a3f7
commit cb7163dd19

113
build.js
View File

@@ -2601,15 +2601,17 @@
if (includeFuncs.length) { if (includeFuncs.length) {
result = includeFuncs; result = includeFuncs;
} }
// add function names required by Backbone and Underscore builds // add default function names
if (isBackbone && !result) { if (!includeProps.length && !includeVars.length) {
result = backboneDependencies; if (isBackbone && !result) {
} result = backboneDependencies;
else if (isUnderscore && !result) { }
result = underscoreFuncs; else if (isUnderscore && !result) {
} result = underscoreFuncs;
if (!result) { }
result = lodashFuncs.slice(); if (!result) {
result = lodashFuncs.slice();
}
} }
// remove special "none" entry // remove special "none" entry
if (result == 'none') { if (result == 'none') {
@@ -2627,12 +2629,31 @@
: minusFuncs.concat(getDependants(minusFuncs)) : minusFuncs.concat(getDependants(minusFuncs))
); );
} }
if (isModularize) {
result = _.difference(result, getNamesByCategory('Chaining'), 'runInContext');
}
if (!isNoDep) { if (!isNoDep) {
result = getDependencies(result); result = getDependencies(result);
} }
return result; return result;
}()); }());
if (!isNoDep) {
// additional variables to include in the build
includeProps = _.uniq(_.transform(propDependencyMap, function(result, propNames, funcName) {
if (_.contains(buildFuncs, funcName)) {
push.apply(result, propNames);
}
}, includeProps));
// additional properties to include in the build
includeVars = _.uniq(_.transform(varDependencyMap, function(result, varNames, funcName) {
if (_.contains(buildFuncs, funcName)) {
push.apply(result, varNames);
}
}, includeVars));
}
/*------------------------------------------------------------------------*/ /*------------------------------------------------------------------------*/
// load customized Lo-Dash module // load customized Lo-Dash module
@@ -3763,49 +3784,20 @@
.replace(/(?:\s*\/\/.*)*\n *lodash\.prototype.[\s\S]+?;/g, ''); .replace(/(?:\s*\/\/.*)*\n *lodash\.prototype.[\s\S]+?;/g, '');
} }
if (isNoDep) { if (isNoDep) {
source = removeAssignments(source);
source = removeFromCreateIterator(source, 'lodash'); source = removeFromCreateIterator(source, 'lodash');
source = removeGetIndexOf(source); source = removeGetIndexOf(source);
source = removeLodashWrapper(source);
// convert the `lodash.templateSettings` property assignment to a variable assignment if (isExcluded('lodash')) {
source = source.replace(/\b(lodash\.)(?=templateSettings *=)/, 'var '); source = removeFunction(source, 'lodash');
}
// remove the `lodash` namespace from properties
source = source.replace(/\blodash\.(\w+)\b(?!\s*=)/g, '$1');
// remove all horizontal rule comment separators
source = source.replace(/^ *\/\*-+\*\/\n/gm, '');
// remove debug sourceURL use in `_.template`
source = source.replace(matchFunction(source, 'template'), function(match) {
return match.replace(/(?:\s*\/\/.*\n)* *var sourceURL[^;]+;|\+ *sourceURL/g, '');
});
// replace `_` use in `_.templateSettings.imports`
source = source.replace(matchVar(source, 'templateSettings'), function(match) {
return match.replace(/(:\s*)lodash\b/, "$1{ 'escape': escape }");
});
// remove function aliases // remove function aliases
_.each(buildFuncs, function(funcName) { _.each(buildFuncs, function(funcName) {
_.each(getAliases(funcName), function(alias) { _.each(getAliases(funcName), function(alias) {
source = removeFunction(source, alias); source = removeFunction(source, alias);
}); });
}); });
// remove function variable dependencies
_.each(varDependencies, function(varName) {
if (!_.contains(includeVars, varName)) {
source = removeVar(source, varName);
}
});
if (!isAMD && !isCommonJS && !isGlobal && !isNode) {
if (isExcluded('lodash')) {
source = removeFunction(source, 'lodash');
}
source = removeLodashWrapper(source);
source = removeAssignments(source);
}
} }
else { else {
if (isExcluded('bind')) { if (isExcluded('bind')) {
@@ -3903,6 +3895,20 @@
} }
}); });
// remove unneeded function properties dependencies
_.each(propDependencies, function(propName) {
if (!_.contains(includeProps, propName)) {
source = removeProp(source, propName);
}
});
// remove unneeded function variable dependencies
_.each(varDependencies, function(varName) {
if (!_.contains(includeVars, varName)) {
source = removeVar(source, varName);
}
});
// remove unused variables // remove unused variables
(function() { (function() {
var isShallow = isExcluded('runInContext'), var isShallow = isExcluded('runInContext'),
@@ -3929,6 +3935,27 @@
} }
} }
}()); }());
if (isNoDep) {
// convert the `lodash.templateSettings` property assignment to a variable assignment
source = source.replace(/\b(lodash\.)(?=templateSettings *=)/, 'var ');
// remove the `lodash` namespace from properties
source = source.replace(/\blodash\.(\w+)\b(?!\s*=)/g, '$1');
// remove all horizontal rule comment separators
source = source.replace(/^ *\/\*-+\*\/\n/gm, '');
// remove debug sourceURL use in `_.template`
source = source.replace(matchFunction(source, 'template'), function(match) {
return match.replace(/(?:\s*\/\/.*\n)* *var sourceURL[^;]+;|\+ *sourceURL/g, '');
});
// replace `_` use in `_.templateSettings.imports`
source = source.replace(matchVar(source, 'templateSettings'), function(match) {
return match.replace(/(:\s*)lodash\b/, "$1{ 'escape': escape }");
});
}
} }
if (_.size(source.match(/\bfreeModule\b/g)) < 2) { if (_.size(source.match(/\bfreeModule\b/g)) < 2) {
source = removeVar(source, 'freeModule'); source = removeVar(source, 'freeModule');