tancredi / fantasticon

Icon font generation tool
MIT License
925 stars 103 forks source link

glob 8.x breaks Windows #470

Open XhmikosR opened 1 year ago

XhmikosR commented 1 year ago

On Windows, glob 8.x has changed how results are returned and fantasticon 2.0.0 is unusable.

> bootstrap-icons@1.10.2 icons-font
> fantasticon

No SVGs found in ./icons
ERROR: "icons-font" exited with 1.

I suggest that you either downgrade glob or normalize backslashes yourself. I personally just don't update glob to 8.x.

HoneyLuka commented 1 year ago

Confirmed, I got a "No SVGs found in xxx" error on Windows. Version: 2.0.0

hapf commented 1 year ago

The bug is, that glob requires slashes, but path.join() creates backslashes on windows systems. In the file src/utils/assets.ts, function loadPaths(dir), create globPath as join(dir,*/.${ASSETS_EXTENSION}).replace(/\\/g, '/'); and it should work.

lucas-labs commented 1 year ago

The bug is, that glob requires slashes, but path.join() creates backslashes on windows systems. In the file src/utils/assets.ts, function loadPaths(dir), create globPath as join(dir,*/.${ASSETS_EXTENSION}).replace(/\\/g, '/'); and it should work.

I just tested this, and it fixed the issue.

Mirta91 commented 1 year ago

The same thing is happening to me. Downgrading the version to 1.2.3 helped temporaraly.

anabwan commented 1 year ago

The bug is, that glob requires slashes, but path.join() creates backslashes on windows systems. In the file src/utils/assets.ts, function loadPaths(dir), create globPath as join(dir,*/.${ASSETS_EXTENSION}).replace(/\\/g, '/'); and it should work.

I did the same! this works..

sozysozbot commented 1 year ago

For those who want to downgrade glob but are struggling to do so (I definitely was!):

  1. Add overrides to your package.json

    "dependencies": {
    "fantasticon": "^2.0.0"
    +  },
    +  "overrides": {
    +    "fantasticon": {
    +      "glob": "7.2.0"
    +   }
    }
  2. run npm uninstall fantasticon && npm install fantasticon

(According to https://github.com/npm/cli/issues/4232#issuecomment-1367900280 , you need to explicitly uninstall and reinstall fantasticon for the overrides to work

amitpatil321 commented 8 months ago

Followed same steps but still getting that error :/

amitpatil321 commented 8 months ago

For now i downgraded it to 1.2.3, and Since I was using global instance, I just installed it globally

npm i -g fantasticon@1.2.3

adidahiya commented 8 months ago

For anyone encountering this bug: you can try migrating to @twbs/fantasticon instead. The bootstrap team has forked fantasticon and worked around this issue. It seems like this original fantasticon package is no longer maintained. I migrated my project 2 months ago and it's been working well so far.

XhmikosR commented 8 months ago

I was really hoping we could upstream our patches, since they are mostly trivial but improve things nevertheless (comparison). Unfortunately, last time I tried upstreaming the patches, I didn't succeed so I have to keep the fork around for the time being.

ruancs commented 6 months ago

For now i downgraded it to 1.2.3, and Since I was using global instance, I just installed it globally

npm i -g fantasticon@1.2.3

this worked to me! thanks

modmoto commented 2 weeks ago

Do I get this right, that the PR to fix this was not completed yet? https://github.com/tancredi/fantasticon/pull/510

So the only way to get this to work is to downgrade to v2? The override of the glob dependency did not work for me...