Have ideas to improve npm?Join in the discussion! »

    @netlify/run-utils

    1.0.7 • 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.

    Install

    npm i @netlify/run-utils

    DownloadsWeekly Downloads

    66,811

    Version

    1.0.7

    License

    MIT

    Unpacked Size

    6.64 kB

    Total Files

    5

    Last publish

    Collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar