medikoo / cli-color

Colors and formatting for the console
ISC License
676 stars 34 forks source link

es5-ext, cli-color related error #22

Closed StreetStrider closed 9 years ago

StreetStrider commented 9 years ago

Good day. I have strange error which can only be reproduced in special environment. I've tried to determine the problem myself, but I do not know cli-color and es5-ext packages well enough.

Here's the problem: My project uses console-ultimate package of my own, depends on cli-color (depends on es5-ext). Everything works fine. But when I start project in forever I have constraint error:

RangeError: Count must be >= 0
    at String.module.exports (/home/<project>/opt/<project>/node_modules/console-ultimate/node_modules/cli-color/node_modules/es5-ext/string/#/repeat/shim.js:11:23)
    at Function.module.exports.defineProperties.reset (/home/<project>/opt/<project>/node_modules/console-ultimate/node_modules/cli-color/index.js:109:17)
    at Object.<anonymous> (/home/<project>/opt/<project>/node_modules/console-ultimate/src/console/clear.js:5:30)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/home/<project>/opt/<project>/node_modules/console-ultimate/src/Console.js:18:10)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
error: Forever detected script exited with code: 8

console-ultimate extensively uses cli-color, but the only feature fails is .clear, I workaround it by removing var reset = require('cli-color').reset in .clear.

This issue reproduces on remote machines with Ubuntu and Centos.

Do you have any ideas why this code fails? Maybe there's conflict in prototypes?

medikoo commented 9 years ago

@StreetStrider it looks that height of terminal gets resolved to 0, and that makes repeat to be called with -1.

Still it's only v0.3 where this bug may occur. It's no longer the case with v1 (current version) where reset no longer uses repeat. So best would be if you just upgrade to use cli-color at v1. Mind there are some API changes, but nothing that can't be quickly patched

StreetStrider commented 9 years ago

@medikoo, yes, I know migration would be easy. I'll update and come back with results. Thanks.

StreetStrider commented 9 years ago

've updated flawlessly. Everything works fine. :+1: The issue most probably was caused by redirecting output to file (which is forever do). That caused incorrect terminal size resolution. Thanks for help.