NPM-START(1) NPM-START(1)

# [NAME](#NAME)

**npm-start** - Start a package

## [Synopsis](#Synopsis)

```
npm start [-- <args>]
```

## [Description](#Description)

This runs a predefined command specified in the **"start"** property of a package's **"scripts"** object.

If the **"scripts"** object does not define a **"start"** property, npm will run **node server.js**.

Note that this is different from the default node behavior of running the file specified in a package's **"main"** attribute when evoking with **node .**

As of **\\fBnpm@2.0.0\\fR** *⟨https://blog.npmjs.org/post/98131109725/npm-2-0-0⟩*, you can use custom arguments when executing scripts. Refer to npm help run for more details.

## [Example](#Example)

```
{


  "scripts": {


    "start": "node foo.js"


  }
}
```

```
npm start
> npm@x.x.x start
> node foo.js
(foo.js output would be here)
```

## [Configuration](#Configuration)

## **ignore-scripts**

- Default: false
- Type: Boolean

If true, npm does not run scripts specified in package.json files.

Note that commands explicitly intended to run a particular script, such as **npm start**, **npm stop**, **npm restart**, **npm test**, and **npm run** will still run their intended script if **ignore-scripts** is set, but they will *not* run any pre- or post-scripts.

Setting **ignore-scripts** also disables **.npm-extension** execution, as if **ignore-extension** were set.

## **script-shell**

- Default: '/bin/sh' on POSIX systems, 'cmd.exe' on Windows
- Type: null or String

The shell to use for scripts run with the **npm exec**, **npm run** and **npm** **init &lt;package-spec&gt;** commands.

## [See Also](#See_Also)

- npm help run
- npm help scripts
- npm help test
- npm help restart
- npm help stop

July 2026 NPM@12.0.2

---

Document: npm-start(1) from npm 12.0.2-r0 (Chainguard OS)
