npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rollup-plugin-static-site

v0.1.0

Published

generate html out of thin air (or with any templating engine) for your static site bundle

Downloads

89

Readme

rollup-plugin-static-site

generate html out of thin air (or with any templating engine) for your static site bundle

npm version npm downloads

install

yarn add -D rollup-plugin-static-site

usage

// rollup.config.js
import staticSite from 'rollup-plugin-static-site';

export default {
  input: 'src/index.js',
  output: {
    file: 'dest/js/bundle.js',
    format: 'iife',
  },
  plugins: [
    staticSite({ dir: 'dest' }),
  ]
};

running rollup -c with the above config will create static files in dest. the output html will be in dest/index.html and will have a script tag pointing to the rollup bundle.

options

opts Object - plugin options

  • .dir string - path to output directory containing assets and bundle
  • [.css] boolean | string = false - path to css file. typically the value of rollup-plugin-postcss' extract option.
  • [.filename] string = "index.html" - filename of the output html
  • [.moreScripts] Array.<string> | string = [] - additional scripts that should be injected into the output html, useful for loading libraries via a cdn instead the bundle
  • [.moreStyles] Array.<string> | string = [] - like opts.moreScripts, but for css
  • [.suffix] boolean | string = false - adds a suffix to the script and css filename
  • [.template] Object = {} - custom template options
    • .func function - wrapper function used for custom templating engines. has signature (templateStr, templateData) => finalHtml, where templateStr is the contents of the custom template (opts.template.path) and templateData is the result of merging opts.title and opts.template.data with two array properties, scripts and styles. scripts is opts.moreScripts with the path to the bundle opts.dir appended. styles is opts.moreStyles with opts.css appended, if given. this function should call whatever custom templating engine api necessary with the arguments in order to return finalHtml, a string of html that the plugin will save.
    • .path string - path to custom template. if func is not given, the default doT engine will be used. the plugin will inject template strings to handle scripts and styles data if necessary.
    • [.data] Object = {} - template data object. scripts and styles are reserved and will be overwritten if present.
  • [.title] string = "rollup app" - string used for the <title> tag in the output html

test

yarn test # or yarn test:cov

motivation

i recently got back into making web-based creative coding sketches. for me, this means static html with some client-side js. instead of going with the familiar webpack + html-webpack-plugin, i wanted to try something new, so i went ahead and installed rollup. the rollup wiki led me to rollup-plugin-generate-html-template, which works well for very simple projects, but quickly becomes unusable due to inflexibility. i tried some other html-related plugins with no luck, so i wrote one myself 😈.