function modularizeFile(file, base, optimize) { var r = []; var name = fs.relative(base || fs.directory(file), file).replace(/\\/g, '/'); var extension = fs.extension(file); if (extension === '.js') { var module = name.substr(0, name.length - extension.length); r.push('modules["' + module + '"] = function(require, exports, module) {'); fs.read(file).split('\n').forEach(function(line) { r.push(line && ' ' + line); }); r.push('};\n'); } else { var contents = fs.read(file); if (optimize && extension === '.html') { contents = optimizeHTML(contents); } r.push('modules["' + name + '"] = function(require, exports, module) {'); r.push(' module.exports = ' + JSON.stringify(contents) + ';'); r.push('};\n'); } return r.join('\n'); }
var modularize = exports.modularize = function(base, paths, main, optimize) { var r = []; r.push('modules = self.modules || {};'); paths.forEach(function(path) { if (fs.isFile(path)) { r.push(modularizeFile(path, base, optimize)); } else if (fs.isDirectory(path)) { r.push(modularizeDirectory(path, base, optimize)); } }); if (main) { r.push(fs.read(resolve(module, './require.js')) + '("' + removeExtension(main) + '");'); } var result = r.join('\n'); if (optimize) { result = optimizeJS(result); } return result; };
files.forEach(function(file) { r.push(fs.read(file)); });