patorjk / figlet.js

A FIG Driver written in JavaScript which aims to fully implement the FIGfont spec.
MIT License
2.65k stars 170 forks source link

Unknown error #46

Open reazn opened 5 years ago

reazn commented 5 years ago

Im getting an "UNKNOWN" errorno -4094 Code:


    figlet("Test", function(err, data) {
        if (err) {
            console.log(err);
            return;
        }
        message.channel.send('```' + data + '```')
    })```

Error:
`{ [Error: UNKNOWN: unknown error, open '//../fonts/Standard.flf']
  errno: -4094,
  code: 'UNKNOWN',
  syscall: 'open',
  path: '//../fonts/Standard.flf' }
`
patorjk commented 5 years ago

That path looks a little odd. I don't get that on my end, but I've updated the code so that kind of path should never arise. I've pushed a new version. If you update to v1.2.2, do you still get that error?

reazn commented 5 years ago

I have updated figlet but it's now trying to get the font from my E: drive?

{ [Error: ENOENT: no such file or directory, open 'E:\fonts\Standard.flf']
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'E:\\fonts\\Standard.flf' }
patorjk commented 5 years ago

Couple questions:

reazn commented 5 years ago

Directory: E: OS: Windows 10 Path: E:\Discord\SupremeBotty\node_modules\figlet\lib Installed: Local Node: v10.15.3

patorjk commented 5 years ago

I wonder if this is a Windows path issue. Can you modify the node_modules/figlet/lib/node-figlet.js file and then on line 9 add:

console.log(dirname); console.log(fontDir); console.log( path.join(dirname, “../fonts/“); console.log( path.join(__dirname, ‘..’, ‘fonts’); // I’m on mobile, you may have to fix the quotes

My guess is the last one should print out the correct path, if so, I’ll do another update.

stubbo commented 5 years ago

Looked into the issue for him, he was using it along side webpack.

Fixed it by the following to the webpack config node: { __dirname: false }

reazn commented 5 years ago

I wouldn't exactly say that's a fix...

{ [Error: ENOENT: no such file or directory, open 'E:\Discord\SupremeBotty\fonts\Standard.flf']
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'E:\\Discord\\SupremeBotty\\fonts\\Standard.flf' }
patorjk commented 5 years ago

Wait, is this being transpiled? If so, it probably is a Webpack config error of some sort, or at least a problem how the code is being transpiled. __dirname should resolve to "your-app/node_modules/figlet/lib/", and it's joined with "../fonts", which gives the directory to the fonts folder.

Another option may be to use the new "importable-fonts" that I added to the project. I haven't yet tested these, which is why it's not advertised. However, I'm adding them for use in front-end apps that get transpiled. The fonts are actually there, and I envision them being used like this:

import standard from 'figlet/importable-fonts/Standard.js'
figlet.parseFont('Standard', standard);
figlet.text('test', {
    font: 'Standard',
}, function(err, data) {
    console.log(data);
});

Though again, I haven't tested these yet due to some computer issues I'm having.

reazn commented 5 years ago

Thanks for the alternative but for some reason, the new figlet update seems to be infinitely indexing my WebStorm on the huge amount of fonts it has, It seems to be happening on to a friend also.

patorjk commented 5 years ago

The fonts folder has 287 files, the new importable-fonts folder also has 287 files. That doesn't seem like it should cause such a problem.

reazn commented 5 years ago

I'm not sure why it is, but it is.

patorjk commented 5 years ago

I'm not familiar with WebStorm, but you may try marking the directory like shown here: https://stackoverflow.com/questions/36676075/webstorm-11-infinite-indexing-with-angular2

reazn commented 5 years ago

That alternative you suggested has not worked very well. It makes the text move slightly off Image, It works fine when I manually put the .flf into a new fonts folder in my projects directory (because of the path error mentioned previously) but the parsefont thing really messes up the font for me.

cyberbobjr commented 5 years ago

Hi, same problem here with intellij 2019.1 : infinite indexing with figlet/lib directory :'(

reazn commented 5 years ago

@cyberbobjr I have a hacky fix for it, Just delete all the fonts and importable-fonts you don't use and it should fix the indexing. https://github.com/REAZN/figlet.js