示例#1
0
getMain = memoize(function (path) {
	return readFile(resolve(path, 'package.json'), readFileOpts)(
		function (content) {
			var main = parse(stripBOM(content)).main;
			if (!main) throw new Error("No main setting found");
			return main;
		}
	);
});
示例#2
0
readFileData = function (filename, parser, localFilename) {
	return readFile(filename, readFileOpts)(function (code) {
		var ext = extname(filename), type;
		code = stripBOM(code);

		if ((ext !== '.js') && (ext !== '.json') && (ext !== '.css') &&
				(ext !== '.html')) {
			if (parser.ext['.js'].hasOwnProperty(ext)) type = '.js';
			else if (parser.ext['.json'].hasOwnProperty(ext)) type = '.json';
			else if (parser.ext['.css'].hasOwnProperty(ext)) type = '.css';
			else if (parser.ext['.html'].hasOwnProperty(ext)) type = '.html';

			if (!type) throw new Error("Unexpected extension");

			// Extension
			code = parser.ext[type][ext].compile(code, { filename: filename,
				localFilename: localFilename, sourceMap: parser.sourceMap }).code;
		} else {
			type = ext;
		}
		return deferred(code)(function (code) {
			var deps;
			if (type === '.json') {
				code = 'module.exports = ' + code.trim() + ';\n';
				deps = [];
			} else if (type === '.css') {
				code = 'require(\'webmake/lib/browser/load-css.js\')(' +
					stringify(code.trim()) + ');\n';
				deps = ['webmake/lib/browser/load-css.js'];
			} else if (type === '.html') {
				code = 'module.exports = ' + stringify(code) + ';\n';
				deps = [];
			} else {
				if (sLast.call(code) !== '\n') code += '\n';
				deps = compact.call(parseDependencies(code, filename,
					parser.ignoreErrors));
			}

			if (parser.sourceMap) {
				code = 'eval(' + stringify(code + '//# sourceURL=' +
					localFilename) + ');\n';
			}
			return { content: code, deps: deps };
		});
	});
};