Matter-js: Running in Node.js: HTMLElement is not defined

Created on 16 Aug 2017  路  3Comments  路  Source: liabru/matter-js

Hi,

I try to run matter-js serverside in node. Actually I have browser simulation which I'm porting to the server now. I got rid of renderer and now the obstacle is when I run most basic code:

var Mt = require('matter-js')
this.engine = Mt.Engine.create() // throws error: 'HTMLElement is not defined'

Which points me right to the very beginning of the Engine.create() function:

Engine.create = function(element, options) {
        // options may be passed as the first (and only) argument
        options = Common.isElement(element) ? options : element; /// <----
        element = Common.isElement(element) ? element : null;
        options = options || {};
(...)

and:

Common.isElement = function(obj) {
        return obj instanceof HTMLElement;
    };

This is SO obvious that I suspect I may be doing something totally wrong. I can't see any mention of Node specific setup in the getting started...

bug

Most helpful comment

Yeah it supports node but looks like I've slipped up here, thanks for the heads up. I'll handle fixing all the reference issues. Also related is #459.

All 3 comments

I temp fixed it by patching Common.isElement():

Common.isElement = function(obj) {
        return typeof HTMLElement !== 'undefined' && obj instanceof HTMLElement;
    };

but now I see unchecked references to window in Common.now(). I can fix this as well but I don't know how far down the rabbit hole this will lead me so here's my more general question:

Is the master branch of matter-js supposed to work in nodejs environment at all?

FYI, safeguarding references to window in Common.now seems to fix the engine for Node at least for my current use case.

Yeah it supports node but looks like I've slipped up here, thanks for the heads up. I'll handle fixing all the reference issues. Also related is #459.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

car1ot picture car1ot  路  3Comments

BlueInt32 picture BlueInt32  路  4Comments

253153 picture 253153  路  3Comments

ShadewEnder picture ShadewEnder  路  3Comments

christianmalek picture christianmalek  路  4Comments