Skip to content
This repository was archived by the owner on Jan 31, 2023. It is now read-only.

cypress-io/cypress-browserify-preprocessor

Repository files navigation

Cypress Browserify Preprocessor

Cypress preprocessor for bundling JavaScript via browserify

Installation

Requires Node version 6 or above.

npm install --save-dev @cypress/browserify-preprocessor

Usage

In your project's plugins file:

const browserify = require('@cypress/browserify-preprocessor')

module.exports = (register, config) => {
  register('on:spec:file:preprocessor', browserify(config))
}

Options

Pass in options as the second argument to browserify:

module.exports = (register, config) => {
  const options = {
    extensions: [],
    watchOptions: {},
    transforms: [],
    onBundle () {},
  }

  register('on:spec:file:preprocessor', browserify(config, options))
}

extensions

Array of file extensions to supported.

Default:

['.js', '.jsx', '.coffee', '.cjsx']

watchOptions

Object of options passed to watchify

Default:

{
  ignoreWatch: [
    '**/.git/**',
    '**/.nyc_output/**',
    '**/.sass-cache/**',
    '**/bower_components/**',
    '**/coverage/**',
    '**/node_modules/**',
  ],
}

transforms

Array of transforms. Each item is an object with a transform set to the path to a transform package or the required module itself and options set to the options for that transform.

Default:

[
  {
    transform: 'cjsxify',
    options: {},
  },
  {
    transform: 'babelify',
    options: {
      ast: false,
      babelrc: false,
      plugins: ['babel-plugin-add-module-exports'],
      presets: ['babel-preset-env', 'babel-preset-react'],
    },
  },
]

onBundle

A function that is called with the browserify bundle. This allows you to specify external files and plugins. See the browserify docs for methods available.

browserify({
  onBundle (bundle) {
    bundle.external('react')
    bundle.plugin('some-plugin')
  }
})

Modifying default options

The default options are provided as browserify.defaultOptions so they can be more easily modified.

If, for example, you want to update the options for the babelify transform to turn on babelrc, you could do the following:

const browserify = require('@cypress/browserify-preprocessor')

module.exports = (register, config) => {
  const options = browserify.options
  options.transforms[1].options.babelrc = true

  register('on:spec:file:preprocessor', browserify(config, options))
}

Default: undefined

License

This project is licensed under the terms of the MIT license.

About

Cypress preprocessor for bundling JavaScript via browserify

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 15