@10xjs/polyfill-analyzer 中文文档教程

发布于 5年前 浏览 31 项目主页 更新于 3年前

@10xjs/polyfill-analyzer

分析 javascript 文件以确定运行它需要哪些 polyfill。 专为与 polyfill-library 一起使用而设计。

Usage

Polyfill 分析器静态分析一串 javascript 并返回一个与 polyfill-library

import fs from 'fs';
import {analyze} from '@10xjs/polyfill-analyzer';

const features = analyze({
  source: s.readFileSync('./bundle.js', 'utf-8'),
  // `include` is a list of feature names to detect. Without a value provided,
  // `analyze` will default to detecting all possible features (using
  // `polyfillLibrary.listAllPolyfills()`). If you know your browser support 
  // target, `include` should be provided as the list of only the polyfills
  // possibly needed for the targeted browsers.
  include: [
    'Symbol',
    'Symbol.toStringTag',
    'Symbol.iterator',
    'Array.from',
    'Object.entries',
    'Array.prototype.findIndex',
    'Object.keys',
    'Object.getOwnPropertyDescriptor',
    'Object.getOwnPropertyDescriptors',
  ],
  // Configure the behavior when an an entry in the `include` array is not a
  // detectable polyfill. (Not all features listed by
  // polyfillLibrary.listAllPolyfills()` can be detected.)
  // Allowed values are "ignore", "warn", and "error";
  unsupportedPolyfill: 'ignore',
});

// Returns an array of feature names which can be used to generate a custom
// polyfill bundle using `polyfillLibrary.getPolyfillString()`.

// [
//   'Symbol',
//   'Symbol.toStringTag',
//   'Array.from',
//   'Object.keys',
//   'Object.getOwnPropertyDescriptor',
//   'Object.getOwnPropertyDescriptors',
// ]

API

analyze(options)

获取运行 javascript 字符串所需的 polyfill 列表。

  • @param {string} [options.source] Javascript source code.
  • @param {string[]} [options.include] List of polyfills (from polyfill-library) to detect. Defaults to all detectable polyfills.
  • @param {string[]} [options.exclude=[]] List of polyfills to ignore. The exclude list has precedence over the include list.
  • @param {"ignore"|"warn"|"error"} [options.unsupportedPolyfill="error"] Specify the behavior when an included unsupported polyfill is encountered in the options.include list.

@10xjs/polyfill-analyzer

Analyze a javascript file to determine which polyfills are necessary to run it. Designed for use with polyfill-library.

Usage

Polyfill analyzer statically analyzes a string of javascript and returns an array of polyfill feature names compatible with with polyfill-library.

import fs from 'fs';
import {analyze} from '@10xjs/polyfill-analyzer';

const features = analyze({
  source: s.readFileSync('./bundle.js', 'utf-8'),
  // `include` is a list of feature names to detect. Without a value provided,
  // `analyze` will default to detecting all possible features (using
  // `polyfillLibrary.listAllPolyfills()`). If you know your browser support 
  // target, `include` should be provided as the list of only the polyfills
  // possibly needed for the targeted browsers.
  include: [
    'Symbol',
    'Symbol.toStringTag',
    'Symbol.iterator',
    'Array.from',
    'Object.entries',
    'Array.prototype.findIndex',
    'Object.keys',
    'Object.getOwnPropertyDescriptor',
    'Object.getOwnPropertyDescriptors',
  ],
  // Configure the behavior when an an entry in the `include` array is not a
  // detectable polyfill. (Not all features listed by
  // polyfillLibrary.listAllPolyfills()` can be detected.)
  // Allowed values are "ignore", "warn", and "error";
  unsupportedPolyfill: 'ignore',
});

// Returns an array of feature names which can be used to generate a custom
// polyfill bundle using `polyfillLibrary.getPolyfillString()`.

// [
//   'Symbol',
//   'Symbol.toStringTag',
//   'Array.from',
//   'Object.keys',
//   'Object.getOwnPropertyDescriptor',
//   'Object.getOwnPropertyDescriptors',
// ]

API

analyze(options)

Get a list of polyfills necessary for running a string of javascript.

  • @param {string} [options.source] Javascript source code.
  • @param {string[]} [options.include] List of polyfills (from polyfill-library) to detect. Defaults to all detectable polyfills.
  • @param {string[]} [options.exclude=[]] List of polyfills to ignore. The exclude list has precedence over the include list.
  • @param {"ignore"|"warn"|"error"} [options.unsupportedPolyfill="error"] Specify the behavior when an included unsupported polyfill is encountered in the options.include list.
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文