npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

karma-webkit-launcher

v2.6.0

Published

A Karma plugin. Launcher for Webkit.

Downloads

17,249

Readme

karma-webkit-launcher

Build status: Playwright (MacOS) Build status: Playwright (Ubuntu) Build status: Playwright (Windows) Build status: Epiphany NPM version

NPM

Karma Launcher for Apple's Webkit

Installation

The easiest way is to keep karma-webkit-launcher as a devDependency in your package.json, by running

npm install karma-webkit-launcher --save-dev

Supported WebKit-Launcher

This karma-webkit-launcher provides the following browser launcher.

| Karma Runner Browsers | ENV | Type | CI note | | --------------------- | ------------------- | ----------------------------------------------------------------- | -------------- | | WebKit | WEBKIT_BIN | Native / Playwright / Safari (MacOS only) | - | | WebKitHeadless | WEBKIT_HEADLESS_BIN | Native / Playwright | - | | Safari | SAFARI_BIN | Native MacOS only | not supported | | Epiphany | EPIPHANY_BIN | Native Ubuntu only | needs xvfb-run |

Configuration

For the configuration just add Webkit or WebkitHeadless in your browser list.

// karma.conf.js
export default (config) => {
  config.set({
    browsers: ['Webkit'],  // You may use 'WebkitHeadless' or other supported browser

You can pass the list of browsers as a CLI argument too:

karma start --browsers Webkit

Headless Webkit with Playwright / Playwright-Webkit

Playwright is a Node.js library to automate Chromium, Firefox and WebKit with a single API. Playwright is built to enable cross-browser web automation that is ever-green, capable, reliable and fast.

Headless execution is supported for all the browsers on all platforms. Check out system requirements for details.

If no environment variable is set and Playwright is available, it will be automatically utilized. Additionally, if you exclusively intend to perform WebKit testing, you can install 'playwright-webkit' exclusively for that purpose.

Example Usage

Installing Playwright and karma-webkit-launcher

npm install playwright karma-webkit-launcher --save-dev

Example Karma configuration

// karma.conf.js
module.exports = function (config) {
  config.set({
    browsers: ["WebkitHeadless"],
  });
};

Manually define Playwright executable

To force the use of Playwright over an local Webkit instance, just overwrite the WEBKIT_HEADLESS_BIN or WEBKIT_BIN environment variable.

// karma.conf.js
import playwright from "playwright";
process.env.WEBKIT_HEADLESS_BIN = playwright.webkit.executablePath();

module.exports = function (config) {
  config.set({
    browsers: ["WebkitHeadless"],
  });
};

Advanced Topics

Detected if Safari or Playwright is used

In some instances it is helpful to detect if Playwright or a real Safari Browser is used. For this reason it's possible to detect which kind of browser is currently running the tests over this runner.

if (
  new URLSearchParams(document.referrer || window.location.search).get(
    "test_browser"
  ) == "Playwright"
) {
  // Playwright specific tests
}

See: Playwright Karma Test

if (
  new URLSearchParams(document.referrer || window.location.search).get(
    "test_browser"
  ) == "Safari"
) {
  // Safari specific tests
}

See: Safari Karma Test

For more information on Karma see the Karma Homepage.