d0d0 / google-diff-match-patch

Automatically exported from code.google.com/p/google-diff-match-patch
Apache License 2.0
0 stars 0 forks source link

Doesn't work with node.js #50

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. create a node app
2. var diff = require("./lib/diff_match_patch.js");
3. run the app

What is the expected output? What do you see instead?

The app should run. Instead I get "ReferenceError: window is not defined". 
Looks like this lib is assuming a browser environment.

What version of the product are you using? On what operating system?

Looks like diff_match_patch_20110603. OS X 10.6.8.

Please provide any additional information below.

Original issue reported on code.google.com by *lo...@row27.com on 12 Jul 2011 at 6:58

GoogleCodeExporter commented 9 years ago
Just delete the last six lines of diff_match_patch_uncompressed.js and it will 
work fine (since it's server-side there's no advantage to using the illegible 
compressed version).

I'll wrap those lines in an if statement that checks for window and update the 
file shortly.

Thanks!

Original comment by neil.fra...@gmail.com on 13 Jul 2011 at 6:43

GoogleCodeExporter commented 9 years ago
Thanks for getting back to me. I did manage to get that part working.

Question? How do I use this with Node's require statement? 

if I create a simple node script:

var dmp = require("./diff_match_patch_uncompressed.js");
console.log(dmp);
var differ = new dmp();

When trying to run it I get:

TypeError: object is not a function
    at Object.CALL_NON_FUNCTION_AS_CONSTRUCTOR (native)

dmp logs as an empty object. I am fairly new to node, but I believe the problem 
is with the file not having exports or the functions defined as this.foo = 
function () { blah; }.

Any help would be great. Thanks so much!

Original comment by *lo...@row27.com on 13 Jul 2011 at 6:55

GoogleCodeExporter commented 9 years ago
I'm afraid I've never used node.js and have no insights as to what's wrong.  
Check with the node.js community.

But do report back what you find so that the next person doesn't have to 
stumble through the same issues.

Original comment by neil.fra...@gmail.com on 13 Jul 2011 at 7:34

GoogleCodeExporter commented 9 years ago
Should be fixed now.  Simply changed 'window' to 'this'.

Original comment by neil.fra...@gmail.com on 16 Jul 2011 at 3:05