Skip to content

non-zero exit codes for npm run-script build? #252

Closed
@weisjohn

Description

@weisjohn

When I try to npm run-script build, if the process fails, I would expect it to return a non-zero exit code. Example:

john at Johns-MacBook-Pro-4 in ~/mysrc/weisjohn/scratch/test/hello-world                                         
$ npm run-script build

> hello-world@0.0.1 build /Users/john/mysrc/weisjohn/scratch/test/hello-world
> react-scripts build

Failed to create a production build. Reason:
Module build failed: SyntaxError: /Users/john/mysrc/weisjohn/scratch/test/hello-world/src/App.js: Identifier directly after number (5:2)
  3 | import './App.css';
  4 | 
> 5 | 10x;
    |   ^
  6 | 
  7 | class App extends Component {
  8 |   render() {
    at Parser.pp.raise (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/location.js:22:13)
    at Parser.readNumber (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:674:78)
    at Parser.getTokenFromCode (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:516:23)
    at Parser.readToken (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:180:21)
    at Parser.<anonymous> (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/plugins/jsx/index.js:51:20)
    at Parser.readToken (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/plugins/flow.js:170:22)
    at Parser.nextToken (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:169:21)
    at Parser.next (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:81:12)
    at Parser.eat (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/tokenizer/index.js:90:14)
    at Parser.pp.isLineTerminator (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/util.js:69:15)
    at Parser.pp.semicolon (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/util.js:76:13)
    at Parser.pp.parseImport (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/statement.js:1011:8)
    at Parser.pp.parseStatement (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/statement.js:141:56)
    at Parser.parseStatement (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/plugins/flow.js:30:22)
    at Parser.pp.parseBlockBody (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/statement.js:529:21)
    at Parser.pp.parseTopLevel (/Users/john/mysrc/weisjohn/scratch/test/hello-world/node_modules/react-scripts/node_modules/babylon/lib/parser/statement.js:36:8)
john at Johns-MacBook-Pro-4 in ~/mysrc/weisjohn/scratch/test/hello-world                                         
$ echo $?
0

One of the reasons I want this is to utilize npm run-script build in a pre-commit hook as follows:

#!/bin/sh
# Exit at first failure
set -e
npm run-script build

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions