Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using "npm run build" fails with "npm ERR! missing script: build"

How can i fix this error, I'm running Windows 10

When i try to npm run build on the cmd i get this error

C:\Users\anai_> npm run build npm ERR! missing script: build 

Here is the log of the run

0 info it worked if it ends with ok 1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe', 1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 1 verbose cli   'run', 1 verbose cli   'build' ] 2 info using [email protected] 3 info using [email protected] 4 verbose config Skipping project config: C:\Users\anai_/.npmrc. (matches userconfig) 5 verbose stack Error: missing script: build 5 verbose stack     at run (C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:151:19) 5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\lib\run-script.js:61:5 5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:115:5 5 verbose stack     at C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:402:5 5 verbose stack     at checkBinReferences_ (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:357:45) 5 verbose stack     at final (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:400:3) 5 verbose stack     at then (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:160:5) 5 verbose stack     at ReadFileContext.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\read-package-json\read-json.js:332:20) 5 verbose stack     at ReadFileContext.callback (C:\Program Files\nodejs\node_modules\npm\node_modules\graceful-fs\graceful-fs.js:78:16) 5 verbose stack     at FSReqWrap.readFileAfterOpen [as oncomplete] (fs.js:437:13) 6 verbose cwd C:\Users\anai_ 7 verbose Windows_NT 10.0.15063 8 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "build" 9 verbose node v9.1.0 10 verbose npm  v5.5.1 11 error missing script: build 12 verbose exit [ 1, true ] 

Although the error refers to a missing script build, i have placed a 'build' script in my package.json

{   "name": "es6",   "version": "1.0.0",   "main": "index.js",   "scripts": {     "build": "webpack"   },   "keywords": [],   "author": "",   "license": "ISC",   "devDependencies": {     "webpack": "^3.8.1"   }  } 

and this is my webpack.config.js file

module.exports = {   entry: ['./app/index.js'],   output: {     path: './build',     filename: 'bundle.js'    } } 

Can anyone tell me how to fix this error or where it is coming from. I am new to using node.js, webpack and the command line. Thanks in advance for your time!

like image 319
Anaizing Avatar asked Nov 17 '17 05:11

Anaizing


People also ask

How do I fix a missing script build?

To solve the Missing script: "build" error, make sure to add a build command to the scripts object in your package. json file and open your shell or IDE in the root directory of your project before running the npm run build command.

What does npm err missing script start mean?

The npm error missing script: “start” means that npm can't execute the “start” script from your package. json file. This error happens when you run the npm start or npm run start command from the command line.

Does npm run build do install?

The npm build is used to build a package, the synopsis is given in the next section. where <package-folder> is a folder that contains a package. json in its root. This is the plumbing command that is called by npm link and npm install.


1 Answers

  1. Try setting the output.path in webpack.config.js to an absolute path

    module.exports = {     entry: ['./app/index.js'],     output: {         path: __dirname + '/build',         filename: 'bundle.js'     } } 

    I don't have Windows (on Linux) but with node 8.16.0 and npm 6.4.1, replicating your package.json and webpack.config.js, I got the following error:

    Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.  - configuration.output.path: The provided value "./build" is not an absolute path!     -> The output directory as **absolute path** (required). 

    See more on the absolute-path stuff here

  2. Since you are on Windows, check your file line-endings (CRLF vs LF). If you've cloned code from another place, depending on your git config, it might have carried over different line endings. You can quickly check line endings in the lower-right corner of VSCode. Visual Studio Code File Indicators

Steps I did to mimic your setup:

  1. copied your package.json and webpack.config.js
  2. run npm i (or npm install)
  3. run npm run build - received the invalid configuration error noted above
  4. changed the output.path to an absolute path concatenating with __dirname (not sure if Windows is different...)
  5. reran npm run build and got:
    ERROR in multi ./app/index.js Module not found: Error: Can't resolve './app/index.js' in '/tmp/es6' @ multi ./app/index.js 
  6. ran mkdir app && touch app/index.js (in linux, creates folder 'app' and then creates the index.js file inside the app folder)
  7. reran npm run build and success:

    > [email protected] build /tmp/es6 > webpack  Hash: 0578ec98b09c215702c6 Version: webpack 3.12.0 Time: 34ms     Asset     Size  Chunks             Chunk Names bundle.js  2.59 kB       0  [emitted]  main [0] multi ./app/index.js 28 bytes {0} [built] [1] ./app/index.js 0 bytes {0} [built] 
like image 132
tveal Avatar answered Sep 23 '22 14:09

tveal