mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
docs: add basic docs for browsers (#9867)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
This commit is contained in:
parent
64cf9db602
commit
21a082fb9f
@ -1,3 +1,42 @@
|
|||||||
# @puppeteer/browsers
|
# @puppeteer/browsers
|
||||||
|
|
||||||
Manage and launch browsers for Puppeteer. Documentation TODO.
|
Manage and launch browsers/drivers from a CLI or programmatically.
|
||||||
|
|
||||||
|
## CLI
|
||||||
|
|
||||||
|
Use `npx` to run the CLI without installing:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npx @puppeteer/browsers --help
|
||||||
|
```
|
||||||
|
|
||||||
|
or install the package as a dependency and run it from your `package.json` script:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npm i @puppeteer/browsers
|
||||||
|
```
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"scripts": {
|
||||||
|
"browsers": "@puppeteer/browsers --help"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
CLI help will provide all documentation you need to use the CLI.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
npx @puppeteer/browsers --help # help for all commands
|
||||||
|
npx @puppeteer/browsers install --help # help for the install command
|
||||||
|
npx @puppeteer/browsers launch --help # help for the launch command
|
||||||
|
```
|
||||||
|
|
||||||
|
Known limitations:
|
||||||
|
|
||||||
|
1. We support installing and running Firefox and Chrome/Chromium. The `latest` keyword only works during the installation. For the `launch` command you need to specify an exact build ID. The build ID is provided by the `install` command.
|
||||||
|
2. Launching the system browsers is only possible for Chrome/Chromium.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
The programmatic API allows installing and launching browsers from your code. See the `test` folder for examples on how to use the `install`, `canInstall`, `launch`, `computeExecutablePath`, `computeSystemExecutablePath` and other methods.
|
||||||
|
@ -61,7 +61,8 @@ export class CLI {
|
|||||||
|
|
||||||
#defineBrowserParameter(yargs: yargs.Argv<unknown>): void {
|
#defineBrowserParameter(yargs: yargs.Argv<unknown>): void {
|
||||||
yargs.positional('browser', {
|
yargs.positional('browser', {
|
||||||
description: 'The browser version',
|
description:
|
||||||
|
'Which browser to install <browser>[@<buildId|latest>]. `latest` will try to find the latest available build. `buildId` is a browser-specific identifier such as a version or a revision.',
|
||||||
type: 'string',
|
type: 'string',
|
||||||
coerce: (opt): InstallArgs['browser'] => {
|
coerce: (opt): InstallArgs['browser'] => {
|
||||||
return {
|
return {
|
||||||
@ -77,27 +78,53 @@ export class CLI {
|
|||||||
type: 'string',
|
type: 'string',
|
||||||
desc: 'Platform that the binary needs to be compatible with.',
|
desc: 'Platform that the binary needs to be compatible with.',
|
||||||
choices: Object.values(BrowserPlatform),
|
choices: Object.values(BrowserPlatform),
|
||||||
defaultDescription: 'Auto-detected by default.',
|
defaultDescription: 'Auto-detected',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
#definePathParameter(yargs: yargs.Argv<unknown>): void {
|
#definePathParameter(yargs: yargs.Argv<unknown>): void {
|
||||||
yargs.option('path', {
|
yargs.option('path', {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
desc: 'Path to the root folder for the browser downloads and installation',
|
desc: 'Path to the root folder for the browser downloads and installation. The installation folder structure is compatible with the cache structure used by Puppeteer.',
|
||||||
default: process.cwd(),
|
default: process.cwd(),
|
||||||
|
defaultDescription: 'Current working directory',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async run(argv: string[]): Promise<void> {
|
async run(argv: string[]): Promise<void> {
|
||||||
await yargs(hideBin(argv))
|
await yargs(hideBin(argv))
|
||||||
|
.scriptName('@puppeteer/browsers')
|
||||||
.command(
|
.command(
|
||||||
'install <browser>',
|
'install <browser>',
|
||||||
'Download and install the specified browser',
|
'Download and install the specified browser. If successful, the command outputs the actual browser buildId that was installed and the absolute path to the browser executable (format: <browser>@<buildID> <path>).',
|
||||||
yargs => {
|
yargs => {
|
||||||
this.#defineBrowserParameter(yargs);
|
this.#defineBrowserParameter(yargs);
|
||||||
this.#definePlatformParameter(yargs);
|
this.#definePlatformParameter(yargs);
|
||||||
this.#definePathParameter(yargs);
|
this.#definePathParameter(yargs);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install chrome',
|
||||||
|
'Install the latest available build of the Chrome browser.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install chrome@latest',
|
||||||
|
'Install the latest available build for the Chrome browser.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install chromium@1083080',
|
||||||
|
'Install the revision 1083080 of the Chromium browser.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install firefox',
|
||||||
|
'Install the latest available build of the Firefox browser.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install firefox --platform mac',
|
||||||
|
'Install the latest Mac (Intel) build of the Firefox browser.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 install firefox --path /tmp/my-browser-cache',
|
||||||
|
'Install to the specified cache directory.'
|
||||||
|
);
|
||||||
},
|
},
|
||||||
async argv => {
|
async argv => {
|
||||||
const args = argv as unknown as InstallArgs;
|
const args = argv as unknown as InstallArgs;
|
||||||
@ -149,6 +176,22 @@ export class CLI {
|
|||||||
desc: 'Search for a browser installed on the system instead of the cache folder.',
|
desc: 'Search for a browser installed on the system instead of the cache folder.',
|
||||||
default: false,
|
default: false,
|
||||||
});
|
});
|
||||||
|
yargs.example(
|
||||||
|
'$0 launch chrome@1083080',
|
||||||
|
'Launch the Chrome browser identified by the revision 1083080.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 launch firefox@112.0a1',
|
||||||
|
'Launch the Firefox browser identified by the milestone 112.0a1.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 launch chrome@1083080 --detached',
|
||||||
|
'Launch the browser but detach the sub-processes.'
|
||||||
|
);
|
||||||
|
yargs.example(
|
||||||
|
'$0 launch chrome@canary --system',
|
||||||
|
'Try to locate the Canary build of Chrome installed on the system and launch it.'
|
||||||
|
);
|
||||||
},
|
},
|
||||||
async argv => {
|
async argv => {
|
||||||
const args = argv as unknown as LaunchArgs;
|
const args = argv as unknown as LaunchArgs;
|
||||||
@ -173,6 +216,7 @@ export class CLI {
|
|||||||
)
|
)
|
||||||
.demandCommand(1)
|
.demandCommand(1)
|
||||||
.help()
|
.help()
|
||||||
|
.wrap(Math.min(120, yargs.terminalWidth()))
|
||||||
.parse();
|
.parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user