diff --git a/kinetic.js b/kinetic.js index 7b2f8485..3084e5b7 100644 --- a/kinetic.js +++ b/kinetic.js @@ -552,20 +552,27 @@ var Kinetic = {}; // if the module has no dependencies, the above pattern can be simplified to ( function(root, factory) { if( typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like enviroments that support module.exports, - // like Node. - var Canvas = require('canvas'); - var jsdom = require('jsdom').jsdom; - var doc = jsdom(''); - var KineticJS = factory(); - Kinetic.document = doc; - Kinetic.window = Kinetic.document.createWindow(); - Kinetic.window.Image = Canvas.Image; + // runtime-check for browserify + if(global.window === global) { + Kinetic.document = global.document; + Kinetic.window = global; + } else { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like enviroments that support module.exports, + // like Node. + var Canvas = require('canvas'); + var jsdom = require('jsdom').jsdom; + var doc = jsdom(''); + + Kinetic.document = doc; + Kinetic.window = Kinetic.document.createWindow(); + Kinetic.window.Image = Canvas.Image; + Kinetic._nodeCanvas = Canvas; + } + Kinetic.root = root; - Kinetic._nodeCanvas = Canvas; module.exports = KineticJS; return; } diff --git a/package.json b/package.json index 3ccfa44b..8b610350 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,10 @@ "graphic", "html5" ], + "browser": { + "canvas": false, + "jsdom": false + }, "bugs": { "url": "https://github.com/ericdrowell/KineticJS/issues" },