For a new module I'm trying to use npm build
without gulp / Grunt / other specialised build tools.
"scripts": {
"build": "node build.js"
},
My build.js is simply
console.log('Hello')
However, running
npm build
Simply exits without printing anything, with a status of 0.
Running:
npm install
Also does all the normal things, but does not run build.js either.
How can I make npm run my build script?
Edit: even simple bash commands don't seem to work, eg
"scripts": {
"build": "touch TESTFILE"
},
Doesn't make a file with that name.
Unfortunately npm build
is already an internal command, as described in the docs:
This is the plumbing command called by npm link and npm install. It should generally not be called directly.
Because that command already exists, it always shadows over your "build": "node build.js"
.
The fully-qualified way to run your own script is with run-script
or its alias run
:
$ npm run build
npm start
and others are the short-hand way, but is only an option when an existing npm command doesn't shadow it, like npm build
does.
For posterity (as others have mentioned) npm build
is used by npm to build native C/C++ Node addons using node-gyp. It's not documented well because usually it happens automatically, but if you're interested the source code is here.