Parses HTML files and extracts custom resources (scripts, stylesheets, images, …)
npm install html-resources



html-resources is a Node.js module which parses .html files and returns resources which are included inside (such as _scripts_, _images_, _stylesheets_, _user-defined_ elements). Supports both _Event-based_ and _Promise-based_ syntax.
``bash`
$ npm install html-resources
getResources(file, options);
`javascript
import getResources, {Resources} from "html-resources";
const parser = getResources("./path/to/file.html", {
cwd: process.cwd(),
resources: [
Resources.Scripts,
Resources.Styles,
Resources.Images
]
});
`
`javascript`
getResources("./path/to/file.html")
.then(resources => …)
.catch(exception => …);
You can also use await/async syntax:
`javascript`
const resources = await getResources("./path/to/file.html")
`javascript
const parser = getResources("./path/to/file.html");
parser.on("item", (type, resource, stream) => …);
parser.on("img", (resource, stream) => …);
parser.on("link", (resource, stream) => …);
parser.on("script", (resource, stream) => …);
// …
parser.on("error", message => …);
parser.on("end", resources => …);
parser.start();
`
You can specify which resources you want to parse in the resources parameter by passing an object with two properties: tag and attr. By default, it will look for:
* Resources.Scripts ();Resources.Styles
* ();Resources.Images
* ();
`javascript
import getResources, {Resources} from "html-resources";
const parser = getResources("./path/to/file.html", {
resources: [
//
{ tag: "custom-tag", attr: "path" },
//
{ tag: "shadow-item", attr: "custom" }
]
});
parser.on("custom-tag", (resource, stream) => …);
parser.on("shadow-item", (resource, stream) => …);
`
You can use html-resources to find, modify and re-save resources in a simple way.
`javascript
parser.on("script", (resource, stream) => {
console.log("Transforming script", resource.name);
const dist = path.resolve("path/to/output/", resource.base);
const write = fs.createWriteStream(dist, { flags: "w" });
// You can use browserify, babelify and use other transformations here…
stream.pipe(write);
});
`
`javascript`
const parser = getResources(file [, options]);
#### file
HTML file to parse.
#### options.cwd
Current working directory. All the paths will be resolved to cwd. By default, it's set to process.cwd() but in most cases you want to set it manually to __dirname or pass an absolute path to file instead.
#### options.resources
An array containing all the resources definitions html-resources should look for. By default, it is set to Resources.Scripts, Resources.Styles, Resources.Images.
`bash``
$ npm test