Sha256: 91f49cbabcb2b0d70dcfdd17d7679ba138aae5d47c0f3142380efb9983b5d5af
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
require 'sprockets' require 'tilt' require 'pathname' require 'shellwords' module Sprockets # Postprocessor that runs the computed source of Javascript files # through browserify, resulting in a self-contained files including all # referenced modules class Browserify < Tilt::Template def prepare end def evaluate(scope, locals, &block) if (scope.pathname.dirname+'package.json').exist? deps = `NODE_PATH=#{Shellwords.shellescape((gem_dir+'node_modules').to_s)} node -e "mdeps=require('module-deps'),through=require('through');mdeps('#{scope.pathname}').pipe(through(function(d){ console.log(d.id); }))"` deps.lines.reject{|line| line =~ /module-deps/}.drop(1).each{|path| scope.depend_on path.strip} # TODO also throw an error if browserify fucks up @output ||= `#{browserify_executable} -d #{scope.pathname}` else data end end protected def gem_dir @gem_dir ||= Pathname.new(__FILE__).dirname + '../..' end def browserify_executable @browserify_executable ||= gem_dir + 'node_modules/browserify/bin/cmd.js' end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sprockets-browserify-0.1.2 | lib/sprockets/browserify.rb |