`npm build` doesn't run the script named "build" in package.json
Solution 1:
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.
Solution 2:
The script named as "build" in package.json
is not special in any way. The only way to get it to run is to call:
npm run-script build
There are some names which are called automatically by npm, but "build" is not one of them. The full list is:
-
prepublish
,publish
,postpublish
-
preinstall
,install
,postinstall
-
preuninstall
,uninstall
,postuninstall
-
preversion
,version
,postversion
-
pretest
,test
,posttest
-
prestop
,stop
,poststop
-
prestart
,start
,poststart
-
prerestart
,restart
,postrestart
-
preCUSTOM
andpostCUSTOM
for custom script names.
Solution 3:
OK, to run a build on it's own, use:
npm run-script build
Solution 4:
Npm build expects
A folder containing a package.json file in its root
Try using npm scripts in your package.json, like the classic npm start