chore: add "playwright-cli" binary (#1330)

This commit is contained in:
Dmitry Gozman
2026-01-23 17:52:48 +00:00
committed by GitHub
parent fbd62cd838
commit cd2b589338
11 changed files with 65 additions and 995 deletions

View File

@@ -2,5 +2,6 @@
!README.md
!LICENSE
!cli.js
!playwright-cli.js
!index.*
!config.d.ts

View File

@@ -15,14 +15,13 @@
},
"license": "Apache-2.0",
"scripts": {
"lint": "npm run update-readme",
"update-readme": "node update-readme.js",
"lint": "node update-readme.js",
"test": "playwright test",
"ctest": "playwright test --project=chrome",
"ftest": "playwright test --project=firefox",
"wtest": "playwright test --project=webkit",
"dtest": "MCP_IN_DOCKER=1 playwright test --project=chromium-docker",
"npm-publish": "npm run clean && npm run lint && npm run test && npm publish",
"npm-publish": "npm run lint && npm run test && npm publish",
"copy-config": "cp ../../../playwright/packages/playwright/src/mcp/config.d.ts . && perl -pi -e \"s|import type \\* as playwright from 'playwright-core';|import type * as playwright from 'playwright';|\" ./config.d.ts",
"roll": "npm run copy-config && npm run lint"
},
@@ -34,10 +33,12 @@
}
},
"dependencies": {
"minimist": "^1.2.5",
"playwright": "1.59.0-alpha-1769176698000",
"playwright-core": "1.59.0-alpha-1769176698000"
},
"bin": {
"mcp-server-playwright": "cli.js"
"mcp": "cli.js",
"playwright-cli": "./playwright-cli.js"
}
}

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env node
/**
* Copyright (c) Microsoft Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const { program } = require('playwright/lib/mcp/terminal/program');
const packageJSON = require('./package.json');
program({ version: packageJSON.version }).catch(e => {
console.error(e.message);
process.exit(1);
});

View File

@@ -0,0 +1,32 @@
/**
* Copyright (c) Microsoft Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { test, expect } from '@playwright/test';
import childProcess from 'child_process';
function runCLI(args: string[]) {
return childProcess.spawnSync(process.execPath, [require.resolve('../playwright-cli'), ...args], { encoding: 'utf-8' });
}
test('prints help', async () => {
const { stdout } = runCLI(['--help']);
expect(stdout).toContain('Usage: playwright-cli <command>');
});
test('prints version', async () => {
const { stdout } = runCLI(['--version']);
expect(stdout).toContain(require('../package.json').version);
});