title: How to fix serve error due to package.json missing in production only?
body: <p>How can I fix the error below:</p>
  
  <pre><code>&gt; ng "serve" "0.0.0.0" "--poll=2500" "--disable-host-check" "--prod=true"
  
  WARNING Running a server with --disable-host-check is a security risk. See https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a for more information.
  ****************************************************************************************
  This is a simple server for use in testing or debugging Angular applications locally.
  It hasn't been reviewed for security issues.
  
  DON'T USE IT FOR PRODUCTION!
  ****************************************************************************************
  ** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
   95% emittingUnhandled rejection Error: ENOENT: no such file or directory, open '/usr/src/web/node_modules/handsontable/package.json'
      at Object.openSync (fs.js:461:3)
      at Object.readFileSync (fs.js:364:35)
      at LicenseExtractor.readPackageJson (/usr/src/web/node_modules/license-webpack-plugin/dist/LicenseExtractor.js:126:23)
      at LicenseExtractor.parsePackage (/usr/src/web/node_modules/license-webpack-plugin/dist/LicenseExtractor.js:23:32)
      at ModuleProcessor.processPackage (/usr/src/web/node_modules/license-webpack-plugin/dist/ModuleProcessor.js:44:46)
      at ModuleProcessor.processFile (/usr/src/web/node_modules/license-webpack-plugin/dist/ModuleProcessor.js:41:21)
      at fileCallback (/usr/src/web/node_modules/license-webpack-plugin/dist/LicenseWebpackPlugin.js:107:61)
      at moduleCallback (/usr/src/web/node_modules/license-webpack-plugin/dist/LicenseWebpackPlugin.js:114:21)
      at /usr/src/web/node_modules/license-webpack-plugin/dist/LicenseWebpackPlugin.js:126:29
      at Array.forEach (&lt;anonymous&gt;)
      at Compiler.emitCallback (/usr/src/web/node_modules/license-webpack-plugin/dist/LicenseWebpackPlugin.js:92:32)
      at next (/usr/src/web/node_modules/tapable/lib/Tapable.js:204:14)
      at /usr/src/web/node_modules/html-webpack-plugin/index.js:204:9
      at PassThroughHandlerContext.finallyHandler (/usr/src/web/node_modules/bluebird/js/release/finally.js:56:23)
      at PassThroughHandlerContext.tryCatcher (/usr/src/web/node_modules/bluebird/js/release/util.js:16:23)
      at Promise._settlePromiseFromHandler (/usr/src/web/node_modules/bluebird/js/release/promise.js:547:31)
  </code></pre>
  
  <p>thrown when:</p>
  
  <pre><code>npm run ng serve --host 0.0.0.0 -- --poll=2500 --disable-host-check --prod=true
  </code></pre>
  
  <p>is run. But which isn't thrown when:</p>
  
  <pre><code>npm run ng serve --host 0.0.0.0 -- --poll=2500 --disable-host-check
  </code></pre>
  
  <p>is run?</p>
  
  <p>Here's the package.json:</p>
  
  <pre><code>{
    "name": "retailportal-web",
    "version": "0.0.0",
    "license": "MIT",
    "angular-cli": {},
    "scripts": {
      "ng": "ng",
      "start": "ng serve --host 0.0.0.0",
      "test": "ng test",
      "build": "ng build --base-href /SopPortal/",
      "build-prod": "ng build --prod --base-href /SopPortal/",
      "pree2e": "webdriver-manager update --standalone false --gecko false",
      "e2e": "protractor"
    },
    "private": true,
    "dependencies": {
      "@angular/animations": "5.1.1",
      "@angular/cdk": "5.0.1",
      "@angular/common": "~5.1.1",
      "@angular/compiler": "~5.1.1",
      "@angular/core": "~5.1.1",
      "@angular/forms": "~5.1.1",
      "@angular/http": "~5.1.1",
      "@angular/material": "5.0.1",
      "@angular/material-moment-adapter": "5.0.3",
      "@angular/platform-browser": "~5.1.1",
      "@angular/platform-browser-dynamic": "~5.1.1",
      "@angular/router": "~5.1.1",
      "@ng-bootstrap/ng-bootstrap": "~1.0.0-beta.8",
      "@ng-select/ng-select": "~0.25.0",
      "@ngx-translate/core": "~9.0.2",
      "@ngx-translate/http-loader": "~2.0.0",
      "@types/jquery": "~3.2.17",
      "angular-highcharts": "5.2.8",
      "compass-sass-mixins": "0.12.7",
      "core-js": "~2.5.3",
      "enhanced-resolve": "3.3.0",
      "font-awesome": "4.7.0",
      "hammerjs": "~2.0.8",
      "highcharts": "6.0.6",
      "numbro": "2.1.2",
      "jquery": "~3.2.1",
      "ng-bootstrap": "~1.6.3",
      "ng2-file-upload": "~1.3.0",
      "ng2-handsontable": "2.0.0",
      "node-sass": "^4.7.2",
      "rxjs": "~5.5.5",
      "tether": "~1.4.3",
      "ts-helpers": "~1.1.2",
      "zone.js": "~0.8.18"
    },
    "devDependencies": {
      "@angular/cli": "1.7.1",
      "@angular/compiler-cli": "~5.0.0",
      "@types/highcharts": "5.0.16",
      "@types/jasmine": "2.5.45",
      "@types/jquery": "~3.2.12",
      "@types/node": "~6.0.60",
      "codelyzer": "~3.1.1",
      "jasmine-core": "2.6.2",
      "jasmine-spec-reporter": "4.1.0",
      "karma": "1.7.0",
      "karma-chrome-launcher": "~2.1.1",
      "karma-cli": "~1.0.1",
      "karma-jasmine": "~1.1.0",
      "karma-remap-istanbul": "~0.2.1",
      "moment": "~2.20.1",
      "protractor": "~5.1.2",
      "ts-md5": "~1.2.0",
      "ts-node": "3.0.4",
      "tslint": "~5.3.2",
      "typescript": "2.4.2"
    }
  }
  </code></pre>
  
  <p>and <code>npm ls --depth=0</code>:</p>
  
  <pre><code># npm ls --depth=0
  retailportal-web@0.0.0 /usr/src/web
  +-- @angular/animations@5.1.1
  +-- @angular/cdk@5.0.1
  +-- @angular/cli@1.7.1
  +-- UNMET PEER DEPENDENCY @angular/common@5.1.3
  +-- UNMET PEER DEPENDENCY @angular/compiler@5.1.3
  +-- @angular/compiler-cli@5.0.5
  +-- UNMET PEER DEPENDENCY @angular/core@5.1.3
  +-- UNMET PEER DEPENDENCY @angular/forms@5.1.3
  +-- @angular/http@5.1.3
  +-- UNMET PEER DEPENDENCY @angular/material@5.0.1
  +-- @angular/material-moment-adapter@5.0.3
  +-- @angular/platform-browser@5.1.3
  +-- @angular/platform-browser-dynamic@5.1.3
  +-- @angular/router@5.1.3
  +-- @ng-bootstrap/ng-bootstrap@1.0.4
  +-- @ng-select/ng-select@0.25.0
  +-- @ngx-translate/core@9.0.2
  +-- @ngx-translate/http-loader@2.0.1
  +-- @types/highcharts@5.0.16
  +-- @types/jasmine@2.5.45
  +-- @types/jquery@3.2.18
  +-- @types/node@6.0.118
  +-- angular-highcharts@5.2.8
  +-- bindings@1.5.0 extraneous
  +-- codelyzer@3.1.2
  +-- compass-sass-mixins@0.12.7
  +-- core-js@2.5.7
  +-- enhanced-resolve@3.3.0
  +-- font-awesome@4.7.0
  +-- hammerjs@2.0.8
  +--  extraneous error: ENOENT: no such file or directory, open '/usr/src/web/node_modules/handsontable/package.json
  +-- highcharts@6.0.6
  +-- jasmine-core@2.6.2
  +-- jasmine-spec-reporter@4.1.0
  +-- jquery@3.2.1
  +-- karma@1.7.0
  +-- karma-chrome-launcher@2.1.1
  +-- karma-cli@1.0.1
  +-- karma-jasmine@1.1.2
  +-- karma-remap-istanbul@0.2.2
  +-- moment@2.20.1
  +-- ng-bootstrap@1.6.3
  +-- ng2-file-upload@1.3.0
  +-- ng2-handsontable@2.0.0
  +-- node-sass@4.14.1
  +-- numbro@2.1.2
  +-- protractor@5.1.2
  +-- rxjs@5.5.12
  +-- tether@1.4.7
  +-- ts-helpers@1.1.2
  +-- ts-md5@1.2.7
  +-- ts-node@3.0.4
  +-- tslint@5.3.2
  +-- typescript@2.4.2
  `-- zone.js@0.8.29
  
  npm ERR! peer dep missing: @angular/common@^4.0.0, required by ng2-handsontable@2.0.0
  npm ERR! peer dep missing: @angular/compiler@5.0.5, required by @angular/compiler-cli@5.0.5
  npm ERR! peer dep missing: @angular/compiler@^2.3.1 || &gt;=4.0.0-beta &lt;5.0.0, required by codelyzer@3.1.2
  npm ERR! peer dep missing: @angular/compiler@^4.0.0, required by ng2-handsontable@2.0.0
  npm ERR! peer dep missing: @angular/core@5.1.1, required by @angular/animations@5.1.1
  npm ERR! peer dep missing: @angular/core@^2.3.1 || &gt;=4.0.0-beta &lt;5.0.0, required by codelyzer@3.1.2
  npm ERR! peer dep missing: @angular/core@^4.0.0, required by ng2-handsontable@2.0.0
  npm ERR! peer dep missing: @angular/forms@^4.0.0, required by ng2-handsontable@2.0.0
  npm ERR! peer dep missing: @angular/material@5.0.3, required by @angular/material-moment-adapter@5.0.3
  npm ERR! extraneous: handsontable /usr/src/web/node_modules/handsontable
  npm ERR! error in /usr/src/web/node_modules/handsontable: ENOENT: no such file or directory, open '/usr/src/web/node_modules/handsontable/package.json'
  npm ERR! extraneous: bindings@1.5.0 /usr/src/web/node_modules/bindings
  </code></pre>
  
  <p>node &amp; npm versions:</p>
  
  <pre><code># node --version
  v14.2.0
  # npm --version
  6.14.4
  # 
  </code></pre>
  
  <p>also tried with node 6 to no avail.</p>
  
  <p>the package <code>handsontable</code> is supplied independent from npm.</p>