Simple library to easily switch between local and CDN libraries.
Just run
$ npm install -g cdnifyYou just need to add the cdn attributes with the URL
pointing to the CDN you want to get started.
For example, let say the following file is called index.html.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Foobar</title>
<script src="js/foo.js" cdn="//mycdn.com/bar.js"></script>
<link href="css/foo.css" cdn="//mycdn.com/bar.css">
</head>
<body>
</body>
</html>By running
$ cdnify index.html -o dist/index.htmlYou will get
<script src="//mycdn.com/bar.js"></script>
<link href="//mycdn.com/bar.css">in dist/index.html.
If you want to keep the local source, pass the --use-local
flag.
--output(aliased:-o): Set the output. Uses stdout if not set.--use-local(default:false): Uses local file (set bysrcorhref) instead ofcdn--incompatible(aliased:-i, default:[]): Set a list of attributes incompatible withcdn. If used together, an error will return.--cdn-attr(aliased:t, default:cdn): Set the attribute to be used for the CDN source.
Sample command:
$ cdnify -o foo.html --use-local -i glob -i other-attr --cdn-attr custom-attrThis module exposes two functions:
-
cdnify.process(rawHtml, options, callback)Arguments:-
rawHtml: The raw HTML to process -
options: The options as specified for the CLI. camelCase can be used instead of dash separated words. -
callback: The callback to be called when done. The callback has the form:function (err, html, $) { }
where
htmlis the processed HTML as a string and$is an instance of cheerio, in case more processing is needed.
-
-
cdnify.processFile(filepath, options, callback)Excatly the same function as above, except that the first argument is the path to the HTML file to proces, instead of the raw HTML.