tsviz
tsviz copied to clipboard
Error: spawn /usr/local/bin/dot ENOENT
I'm using nvm to manage my node installation.
tsviz fails on my setup, because it tries to run /usr/local/bin/dot which doesn't exist on my system.
I installed graphviz, but since it's a system package it still doesn't exist on that path.
Did you manage to solve your problem?
Sorry for the late response.
I haven't used tsviz since I reported this issue. But I've just tried it again and it's still an issue.
My system doesn't have the executable at /usr/local/bin/dot, the correct path is /usr/bin/dot, since it's installed via the system's package manager (Fedora 24).
I think it's in the file bin/uml-builder.js it goes wrong. It checks for win32 and in the else statement it sets setGraphVizPath("/usr/local/bin").
The path might work on *BSD, since they tend to place their packages in /usr/local.
This bug also exists on Ubuntu, for the same reason. tsviz should not assume dot is installed in /usr/local/bin. Ideally, it would be able to use it wherever it is on the PATH, or at least allow an environment variable to be set to tell it where it is.
I worked around it by commenting out g.setGraphVizPath("/usr/local/bin"); in bin/uml-builder.js (line 28).
@chrislong Thanks for the workaround! It saved my day using tsviz on Ubuntu 16.04.
@chrislong If anyone wonders, uml-builer.js is in /usr/local/lib/node_modules/tsviz/bin/uml-builder.js on Ubuntu
We should execute dot in the path instead of at a specific location.