inlineresources
Version:
Inlines style sheets, images, fonts and scripts in HTML documents. Works in the browser.
47 lines (38 loc) • 1.25 kB
JavaScript
/* jshint ignore:start */
const path = require('path'),
puppeteer = require('puppeteer');
const fileUrl = (relPath) => {
return 'file://' + path.resolve(process.cwd(), relPath);
};
const takeScreenshot = async (url, targetPath) => {
const browser = await puppeteer.launch({args: ['--allow-file-access-from-files']}),
page = await browser.newPage(),
pageUrl = fileUrl(url);
await page.goto(pageUrl);
await page.reload(); // Work around parse error `error on line 36 at column 187413: Char 0x0 out of allowed range`
await page.reload();
await page.reload();
await page.screenshot({path: targetPath, fullPage: true});
browser.close();
};
const main = async () => {
if (process.argv.length !== 4) {
console.log('Usage: ' + path.basename(process.argv[1]) + ' URL TARGET_PATH');
console.log("Takes a screenshot of a given URL");
process.exit(1);
}
const url = process.argv[2],
target = process.argv[3];
await takeScreenshot(url, target);
};
(async () => {
try {
await main();
process.exit(0);
} catch (e) {
console.error(e);
process.exit(1);
}
})();
/* jshint ignore:end */