2.0.7 • Published 3 years ago
@qiwi/create-polyfill-service-url v2.0.7
@qiwi/polyfill-service-url-builder
Financial-Times/polyfill-service-url-builder fork to bring pull/283 changes
Usage
CLI
This project requires Node.js 10.x and npm. You can run it with:
> npx create-polyfill-service-url analyse --file bundle.js [--cwd "/custom/pwd" --omit "Array.prototype.includes" --hostname "polyfill.io"]You can pass multiple files as argument if you split your bundle files:
npx create-polyfill-service-url analyse --file app.js vendor.js| Option | Description | Default |
|---|---|---|
| --file | The path to the JavaScript file(s) to analyse | |
| --cwd | The current working directory | process.cwd() |
| --omit | A list of features to omit. Example: Array.prototype.map | |
| --hostname | The hostname of the polyfill service to use. | polyfill.io |
| --use-compute-at-edge-backend | Defines the compute-at-edge-backend usage policy: yes or no. If empty the server will decide. | |
| --flags | Configuration settings for every polyfill being requested. Possible values are always and gated or both | |
| --unknown | Defines the policy for unsupported browsers: polyfill or ignore | polyfill |
JS API
const analyze = require('create-polyfill-service-url');
const result = await analyze({
file: ['bundle.js'],
cwd: '/foo/bar', // Defaults to process.cwd()
omit: ['Array.prototype.includes'], // Defaults to []
hostname: 'example.com', // Defaults to 'polyfill.io'
unknown: 'polyfill', // Defaults to null. Accepts 'polyfill' or 'ignore'
useComputeAtEdgeBackend: 'yes', // Defaults to null. Accepts 'yes' or 'no'
flags: 'gated', // Defaults to null. Accepts 'always', 'gated' or both ['always', 'gated']
});Diff
- introduce
omitoption to suppress false-positive matches in case some custom polyfill is already present in the bundle or provided another way. - add
cwdoption to avoidcd(monorepo build case) - provide
hostnamecustomization - introduce flags,
useComputeAtEdgeBackendandunknownoptions - expose
analyseJS API - add some tests for the CLI
Licence
This project is licensed under the MIT License - see the LICENSE.md file for details