JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 172673
  • Score
    100M100P100Q164338F
  • License MIT

Utility for running commands inside Netlify Build

Package Exports

    Readme

    Coverage Status Build

    Utility for running commands inside Netlify Build. Currently, there is just one utility, run, which is a thin wrapper over execa defaulting to { preferLocal: true, stdio: 'inherit' }.

    Examples

    // Runs `eslint src/ test/` and prints the result
    // Either local or global binaries can be run
    const exampleNetlifyPlugin = {
      async onBuild({ utils: { run } }) {
        await run('eslint', ['src/', 'test/'])
      },
    }
    // Same but with a more convenient syntax
    const exampleNetlifyPlugin = {
      async onBuild({ utils: { run } }) {
        await run.command('eslint src/ test/')
      },
    }
    // Retrieve command's output and exit code as variables
    const exampleNetlifyPlugin = {
      async onBuild({ utils: { run } }) {
        const { stdout, stderr, exitCode } = await run('eslint', ['src/', 'test/'])
        console.log({ stdout, stderr, exitCode })
      },
    }
    // Streaming mode
    const exampleNetlifyPlugin = {
      onBuild({ utils: { run } }) {
        const { stdout } = run('eslint', ['src/', 'test/'])
        stdout.pipe(fs.createWriteStream('stdout.txt'))
      },
    }
    // If the command exit code is not 0 or was terminated by a signal, an error
    // is thrown with failure information
    const exampleNetlifyPlugin = {
      async onBuild({ utils: { run } }) {
        try {
          await run('eslint', ['does_not_exist'])
        } catch (error) {
          console.error(error)
        }
      },
    }
    // Pass environment variables
    const exampleNetlifyPlugin = {
      async onBuild({ utils: { run } }) {
        await run('eslint', ['src/', 'test/'], { env: { TEST: 'true' } })
      },
    }

    API

    run(file, arguments, options?)

    Execute a command/file.

    run.command(command, options?)

    Same as run() except both file and arguments are specified in a single command string. For example, run('echo', ['netlify']) is the same as run.command('echo netlify').

    If the file or an argument contains spaces, they must be escaped with backslashes. This matters especially if command is not a constant but a variable, for example with __dirname or process.cwd(). Except for spaces, no escaping/quoting is needed.