其他分享
首页 > 其他分享> > [Tools] API Extractor Setup for Typescript

[Tools] API Extractor Setup for Typescript

作者:互联网

https://github.com/mike-north/professional-ts/blob/master/notes/04-mikes-ts-setup.md#api-surface-report--docs

Install:

yarn add -D @microsoft/api-extractor @microsoft/api-documenter   

 

Step1:

yarn api-extractor init

It creates api-extractor.json file.

 

Step2:

Since output build output folder is "dist". In api-extractor.json file:

"mainEntryPointFilePath": "<projectFolder>/dist/index.d.ts",

 

Step3:

Find "dtsRollup", enable:

  "dtsRollup": {
    /**
     * (REQUIRED) Whether to generate the .d.ts rollup file.
     */
    "enabled": true,

    /**
     * Specifies the output path for a .d.ts rollup file to be generated without any trimming.
     * This file will include all declarations that are exported by the main entry point.
     *
     * If the path is an empty string, then this file will not be written.
     *
     * The path is resolved relative to the folder of the config file that contains the setting; to change this,
     * prepend a folder token such as "<projectFolder>".
     *
     * SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
     * DEFAULT VALUE: "<projectFolder>/dist/<unscopedPackageName>.d.ts"
     */
     "untrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-private.d.ts",

    /**
     * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release.
     * This file will include only declarations that are marked as "@public" or "@beta".
     *
     * The path is resolved relative to the folder of the config file that contains the setting; to change this,
     * prepend a folder token such as "<projectFolder>".
     *
     * SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
     * DEFAULT VALUE: ""
     */
    "betaTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>-beta.d.ts",

    /**
     * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release.
     * This file will include only declarations that are marked as "@public".
     *
     * If the path is an empty string, then this file will not be written.
     *
     * The path is resolved relative to the folder of the config file that contains the setting; to change this,
     * prepend a folder token such as "<projectFolder>".
     *
     * SUPPORTED TOKENS: <projectFolder>, <packageName>, <unscopedPackageName>
     * DEFAULT VALUE: ""
     */
    "publicTrimmedFilePath": "<projectFolder>/dist/<unscopedPackageName>.d.ts"

    /**
     * When a declaration is trimmed, by default it will be replaced by a code comment such as
     * "Excluded from this release type: exampleMember".  Set "omitTrimmingComments" to true to remove the
     * declaration completely.
     *
     * DEFAULT VALUE: false
     */
    // "omitTrimmingComments": true
  },

 

Step4:

mkdir etc

 

Step5: Build your typescript project:

src/index.ts:

/**
 * @packageDocumentation A small library for common math functions
 */

/**
 * Calculate the average of three numbers
 *
 * @param a - first number
 * @param b - second number
 * @param c - third number
 *
 * @public
 */
export function avg(a: number, b: number, c: number): number {
    return sum3(a, b, c) / 3;
  }

  /**
   * Calculate the sum of three numbers
   *
   * @param a - first number
   * @param b - second number
   * @param c - third number
   *
   * @beta
   */
  export function sum3(a: number, b: number, c: number): number {
    return sum2(a, sum2(b, c));
  }

  /**
   * Calculate the sum of two numbers
   *
   * @param a - first number
   * @param b - second number
   *
   * @internal
   */
  export function sum2(a: number, b: number): number {
    const sum = a + b;
    return sum;
  }

Run:

yarn build

 

Step6: Run

yarn api-extractor run --local

Difference between run with "--local" and without. 

When you run with "--local": it means I want to udpate all the definiations. It should be a new standard. 

When without "--lcoal", it compares "etc" folder, seeing whether anything has changed, if changed, throw error. Which aims to protect our API should be changed without notice. 

 

Step7: add 'temp' folder to .gitignore:

 

Step8: Run documenter:

yarn api-documenter markdown -i temp -o docs

 

Setp9: 

Setup Github docs:

标签:Extractor,Setup,number,param,ts,API,file,path,folder
来源: https://www.cnblogs.com/Answer1215/p/14022598.html