glslify-resolve-remote

A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm

glslify-resolve-remote

A replacement resolver function for glslify that lets you automatically pull in GLSL modules from npm.

One part of a potential glslify server API for allowing client-side shader development without the need for a local server.

Note: npm install hooks are not executed because security, so you'll want to make sure that the package you're requiring has the source files available in full on publish. 99% of the time this won't be an issue though :)

To use this module, pass it in as a custom resolver to glslify like so:

var resolve = require('glslify-resolve-remote')
var bundle  = require('glslify-bundle')
var deps    = require('glslify-deps')
 
var src = `
#pragma glslify: ease = require(glsl-easings/bounce-in-out)
 
void main() {
  gl_FragColor = vec4(vec3(ease(0.5)), 1.0);
}
`
 
var depper = deps({
  resolve: resolve({
    cache: __dirname + '/.glslify'
  })
})
 
depper.inline(src, '/', function(errsrc) {
  if (err) throw err
 
  // no "node_modules" required! 
  console.log(src)
})

The following options are also available:

  • cache: change where downloaded packages are stored on disk. They should only be downloaded once when first required.
  • offline: rely solely on the cache wherever possible. Identended for use in presentations at events such as CampJS, where internet is limited or unavailable. Also useful if you're on the go and don't always have internet access.

MIT. See LICENSE.md for details.