Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shoppingzh/iconfont-downloader
iconfont图标包下载器
https://github.com/shoppingzh/iconfont-downloader
Last synced: about 5 hours ago
JSON representation
iconfont图标包下载器
- Host: GitHub
- URL: https://github.com/shoppingzh/iconfont-downloader
- Owner: shoppingzh
- Created: 2022-12-02T03:03:34.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-06T07:36:55.000Z (2 months ago)
- Last Synced: 2024-10-06T11:47:30.424Z (about 1 month ago)
- Language: TypeScript
- Size: 41 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# iconfont-downloader
iconfont图标包下载工具
## 安装
```bash
pnpm i iconfont-downloader
# yarn add iconfont-downloader
# npm i iconfont-downloader
```## 使用
### 下载字体包
```ts
import { download } from 'iconfont-downloader'download({
pid: '123456',
token: 'abc123',
destDir: './fonts',
picks: {
css: true,
}
})
```**参数**
- `token(string)`: iconfont的token,登录iconfont后,打开F12控制台,名为`EGG_SESS_ICONFONT`的cookie即为该token
- `pid(string)`: 项目id
- `destDir(string)`: 下载的文件存放的目录
- `picks(DownloadPicks)`: 挑选图标包中的文件类型```ts
interface DownloadPicks {
css?: boolean
font?: boolean
svg?: boolean
}
```**返回值**
`Promise`
如果不需要将文件下载到指定目录里,可以不传递 `destDir` 参数,这样,函数会返回一个可读的流:
```ts
const stream = await download({
pid: '123456',
token: 'abc123',
})
// 使用这个流..
```### 下载SVG包
> iconfont的图标包是不包含每个图标的单独svg文件的,而是将所有svg代码置于一个 `.js` 文件中,然后通过 `symbol` 引用的方式去使用。
但是,有时候我们需要所有的单独svg文件,此时,使用以下方法就非常方便了。
下面的代码演示了,将图标包的svg解析出来,并以一个一个文件的形式存放在 `svgs` 目录下。
```ts
import { downloadSvgs } from 'iconfont-downloader'downloadSvgs({
pid: '123456',
token: 'abc123',
destDir: './svgs'
})
```**参数**
- `token(string)`: iconfont登录token
- `pid(string)`: 项目ID
- `destDir(string)`: 目标目录
- `filename((iconName: string) => string)`: svg文件名重写同样,此方法如果不设置 `destDir` ,也会返回一个包含了所有svg文件的压缩包流。