@netlify/run-utils
TypeScript icon, indicating that this package has built-in type declarations

5.1.1 • Public • Published

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.

/@netlify/run-utils/

    Package Sidebar

    Install

    npm i @netlify/run-utils

    Weekly Downloads

    108,406

    Version

    5.1.1

    License

    MIT

    Unpacked Size

    7.88 kB

    Total Files

    5

    Last publish

    Collaborators

    • youvalv
    • berdav
    • vitaliyr
    • smnh
    • denar90
    • kathmbeck
    • rj-netlify
    • akardet
    • pieh
    • hrishikeshk
    • sarahetter
    • orinokai
    • ericap
    • seanroberts
    • skn0tt
    • mikewen
    • biilmann
    • marcus.netlify
    • jgantunes
    • eduardoboucas
    • netlify-bot
    • nasiba
    • ascorbic