KonghaYao / cn-font-split

划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.
https://chinese-font.netlify.app/
Apache License 2.0
496 stars 16 forks source link

命令行参数不起作用? #65

Closed mobeicanyue closed 4 months ago

mobeicanyue commented 4 months ago

使用 bun

cn-font-split -i=./MiSansArabic-Bold.woff2 -o=./dist --renameOutputFont='[index][ext]' --reporter='false' --testHTML='false'

输出

0.woff2  1.woff2  2.woff2  3.woff2  4.woff2  index.html  reporter.json  result.css

如上命令 加上参数 --reporter='false' --testHTML='false' 目录下还是会输出

index.html  reporter.json

--renameOutputFont 倒是起作用了


看了下代码,好像命令行参数只写了 renameOutputFont? https://github.com/KonghaYao/cn-font-split/blob/f2dc3c3412703a84706020348175210097781696/packages/subsets/src/useSubset/createRecord.ts#L13

mobeicanyue commented 4 months ago

另外,

cn-font-split -h

输出的文本,很多描述有些模糊,并且没有给缺省值。如果可以还请完善,万分感谢!

//========== cn-font-split help 4.14.6 ===========
    use . to set the input value.
    cn-font-split -i=./a.ttf -o=./dist
//==== more params 
{
    /** 字体文件的相对地址,或者直接输入 buffer */
    FontPath: string | Buffer | Uint8Array;
    /** 切割后放置文件的文件夹,如果没有文件系统,调用 outputFile 参数 */
    destFold: string;
    /** 替换生成后的 CSS 文件的信息 */
    css?: Partial<{
        fontFamily: string;
        fontWeight: number | string | false;
        fontStyle: string;
        fontDisplay: string;
        /** 本地字体名称,优先级高于自动生成名称 */
        localFamily: string | string[] | false;
        /** 当 fontFamily 不支持一些 format 时,动用其它 format */
        polyfill: ({ name: string; format?: string } | string)[];
        comment:
            | {
                  /**
                   * cn-font-split 相关的数据
                   * @default true
                   */
                  base?: false;
                  /**
                   * 字体文件中的 name table,有字体证书相关的说明
                   * @default true
                   */
                  nameTable?: false;
                  /**
                   * 显示每个字体包含有的 unicode range 的字符, debug 专用
                   * @default false
                   */
                  unicodes?: true;
              }
            | false;
        compress: boolean;
    }>;
    /** 输出的字体类型,默认 woff2 */
    targetType?: FontType;

    /**
     * 控制分包内的 Unicode 字符,优先级高
     */
    subsets?: Subsets;

    /** 自动分包,如果使用了 subsets 参数,那么将会自动分包剩下的 Unicode 字符 */
    autoChunk?: boolean;
    /*  自动分包时使用,优先分包这些字符 */
    unicodeRank?: number[][];
    /** 配合 autoChunk 使用,预计每个包的大小,插件会尽量打包到这个大小  */
    chunkSize?: number;
    /** 分包字符的容忍度,这个数值是基础值的倍数 */
    chunkSizeTolerance?: number;
    /** 最大允许的分包数目,超过这个数目,程序报错退出 */
    maxAllowSubsetsCount?: number;
    /** 输出的 css 文件的名称 ,默认为 result.css */
    cssFileName?: string;

    /** 是否输出 HTML 测试文件  */
    testHTML?: boolean;
    /** 是否输出报告文件  */
    reporter?: boolean;
    /** 是否输出预览图 */
    previewImage?: {
        /** 图中需要显示的文本 */
        text?: string;
        /** 预览图的文件名,不用带后缀名 */
        name?: string;
    };
    /**
     * 日志输出<副作用>
     */
    log?: (...args: any[]) => void;

    logger?: {
        settings?: ISettingsParam<unknown>;
    };
    /** 自定义输出字体名称,优先于 outputFile,用于缩短字体文件名称 */
    renameOutputFont?: string | ((replaceProps: ReplaceProps) => string);
    /** 输出文件的方式,如果你需要在特定的平台使用,那么需要适配这个函数 */
    outputFile?: IOutputFile;
    threads?:
        | {
              /**
               * 服务对象,用于多线程处理
               * @protected
               */
              service?: ConvertManager;
              /* 是否进行多线程切割 */
              split?: boolean;
              /* workerpool 允许的配置项 */
              options?: WorkerPoolOptions;
          }
        | false;
    /**
     * 字体复杂字形等特性的支持
     * @todo
     */
    fontFeature?: boolean;
};

//========== cn-font-split help 4.14.6 ===========
KonghaYao commented 4 months ago
mobeicanyue commented 4 months ago

另外,想问一下问什么要给包名加上 npm scope 呢?好像 npm 也没有重复的包名

KonghaYao commented 4 months ago

因为最开始是加了 scope 的,以为会重复的,然后后面同步了一个没有 scope 的包名称,现在两个包大致都是一样的。

mobeicanyue commented 4 months ago

哈哈哈好的,建议您使用无 scope 的呢,因为名字短 方便用户使用

mobeicanyue commented 4 months ago

image reporter=false 有被识别 但是未执行对应功能 image

KonghaYao commented 4 months ago

--reporter='false' --testHTML='false' , 因为 html 也需要 json 文件