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

meteor-blaze-compiler

v1.0.12

Published

The Meteor blaze templating compiler

Downloads

272

Readme

Blaze

This project is to extract the Meteor Blaze Templating Engine to npm so it can be used in other projects.

Usage

This package can be used in three ways

  1. Compile the templates yourself for later bundling
npm install meteor-blaze-compiler
node ./node_modules/.bin/blaze myTemplate.html > myTemplate.template.js
  1. Use webpack - see the example webpack project for how to configure your modules. Note that I've not worked with webpack much, so there may be a better way to do this however it works nicely for me.

  2. Compile the templates yourself, but serve the rendered HTML from a server - see the example express project. In principle, you compile the templates by hand, require them as needed, then use Blaze.toHTML or Blaze.toHTMLWithData

Current status

This project is combined of 2 npm packages (and a common npm packages) a webpack npm package and an as-yet unpublished meteor package (just to demo that it).

  1. meteor-blaze-compiler is the compiler for blaze. Include it in any project where you want to build templates (possibly as a dev dependency)
  2. meteor-blaze-runtime is the runtime environment for blaze. Include it in any project where you will render blaze templates. In the browser this will also setup the events, on the server it will not.
  3. blaze-loader is the webpack loader for blaze templates defined in .html files. Currently only the <template> tag is recognized (e.g., <head> and <body> tags are ignored).

It is currently working, with a few caveats worth nothing:

The good

  1. All the tests included in the blaze packages are passing
  2. It has been tested using webpack for client side rendering, express for server side rendering, and in Meteor where it seems to exhibit the same behaviour as the default blaze.
  3. There are example projects to get you started with usage.

The bad

  1. Outof date packages: This project makes use of several existing npm extractions of meteor packages, namely meteor-standalone-* - many of these packages are years (some of them 6!) out of date. I'm reluctant to publish duplicate packages (particularly given there is already a full set of duplicates at meteor-* which operate differently). The packages used are diff-sequence, mongo-id, ordered-dict, reactive-var and tracker. So, some features of current blaze may not work.
  2. Mismatch between Meteor and npm versions of some globals: Tracker and ReactiveVar are the two biggies
  3. Excessive use of global vars: I've tried to reduce this where possible, but in the runtime _, Template, Blaze, HTML, Spacebars, Tracker, ReactiveVar all need to be global :(
  4. Dependency on jquery and underscore in the compiler and runtime packages and jsdom (or something else that provides window/document) if you want to render templates server side.

Still to come

I'd like to detect if Meteor is present and use the Meteor versions of some of these dependencies if it is. Of course, perhaps if you're using Meteor you should just use the Meteor Blaze package.