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).
$ npm install html-resources
getResources(file, options);
import getResources, { Resources } from "html-resources";
const parser = getResources("./path/to/file.html", {
cwd: process.cwd(),
resources: [Resources.Scripts, Resources.Styles, Resources.Images]
});
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.parse();
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
(<script src="…"></script>
);Resources.Styles
(<link href="…" />
);Resources.Images
(<img src="…" />
);
import getResources, {Resources} from "html-resources";
const parser = getResources("./path/to/file.html", {
resources: [
// <custom-tag path="path/to/file" />
{ tag: "custom-tag", attr: "path" },
// <shadow-item custom="path/to/file" />
{ 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.
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);
});
const parser = getResources(file [, options]);
HTML file to parse.
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.
An array containing all the resources definitions html-resources
should look for. By default, it is set to Resources.Scripts
, Resources.Styles
, Resources.Images
.
Whether to automatically start to parse the HTML file or wait for manual .parse()
execution.
$ npm test