title: npm run dev won't start server
body: <p>I'm trying to do a "npm run dev", but it's not starting a server. I thought that it was supposed to and open up <a href="http://127.0.0.1:8000" rel="nofollow noreferrer">http://127.0.0.1:8000</a>. How do I get it to do that? "npm start" works and goes to my localhost. I looked for an answer, but couldn't find anything. If anyone can help me out or give me a link to an answer, I'd appreciate it. I'm new here. Thanks. If it helps:</p>
  
  <p>npm -v
  6.4.1</p>
  
  <p>node -v
  v10.13.0</p>
  
  <p>webpack -v
  4.20.2</p>
  
  <p>package.json:</p>
  
  <pre><code>{
    "name": "cocos-skeleton",
    "description": "",
    "version": "1.0.0",
    "main": "main.js",
    "author": "",
    "license": "UNLICENSED",
    "private": true,
    "repository": {
      "type": "git",
      "url": ""
    },
    "scripts": {
      "lint": "cross-env eslint src",
      "test": "cross-env jest --passWithNoTests",
      "test:watch": "cross-env jest --passWithNoTests --watch --notify",
      "test:coverage": "cross-env jest --coverage",
      "config": "cross-env webpack --config tools/webpack/webpack.config.js",
      "bundle": "cross-env npm run config -- --mode production",
      "bundle:watch": "cross-env npm run config -- --mode development --watch --progress --display-error-details",
      "compile": "cross-env cocos compile",
      "start": "cross-env cocos run",
      "dev": "cross-env npm run bundle:watch &amp; npm run start",
      "refresh": "cross-env npm run compile &amp;&amp; npm run start",
      "release": "cross-env cocos run -m release"
    },
    "husky": {
      "hooks": {
        "pre-commit": "lint-staged"
      }
    },
    "lint-staged": {
      "linters": {
        "*.js": [
          "eslint --fix",
          "jest --bail --findRelatedTests",
          "git add"
        ]
      },
      "ignore": [
        "**/frameworks/**/*.js"
      ]
    },
    "dependencies": {
      "@babel/polyfill": "^7.0.0",
      "howler": "^2.0.15",
      "lodash": "^4.17.11",
      "prando": "^3.0.3"
    },
    "devDependencies": {
      "@babel/core": "^7.0.0",
      "@babel/plugin-proposal-class-properties": "^7.0.0",
      "@babel/preset-env": "^7.0.0",
      "babel-core": "^7.0.0-bridge.0",
      "babel-eslint": "^8.2.3",
      "babel-loader": "^8.0.0",
      "babel-plugin-lodash": "^3.3.4",
      "cross-env": "^5.2.0",
      "eslint": "^5.6.1",
      "eslint-config-airbnb-base": "^13.1.0",
      "eslint-plugin-import": "^2.14.0",
      "husky": "^1.1.0",
      "jest": "^23.6.0",
      "lint-staged": "^7.3.0",
      "lodash-webpack-plugin": "^0.11.5",
      "prettier-eslint": "^8.8.2",
      "webpack": "^4.20.2",
      "webpack-cli": "^3.1.2"
    },
    "eslintConfig": {
      "parser": "babel-eslint",
      "extends": "airbnb-base",
      "globals": {
        "cc": true,
        "ccui": true
      },
      "env": {
        "browser": true,
        "jest": true
      },
      "rules": {
        "func-names": [
          "error",
          "as-needed"
        ],
        "no-console": [
          "error",
          {
            "allow": [
              "warn",
              "error",
              "assert"
            ]
          }
        ],
        "complexity": [
          "error",
          5
        ],
        "max-params": [
          "error",
          5
        ],
        "max-depth": [
          "error",
          4
        ],
        "max-statements": [
          "error",
          20
        ],
        "max-lines-per-function": [
          "error",
          50
        ],
        "max-classes-per-file": [
          "error",
          1
        ],
        "max-nested-callbacks": [
          "error",
          3
        ],
        "max-statements-per-line": [
          "error",
          {
            "max": 1
          }
        ]
      }
    },
    "jest": {
      "bail": true,
      "coverageThreshold": {
        "global": {
          "branches": 0,
          "functions": 0,
          "lines": 0,
          "statements": 0
        }
      },
      "collectCoverageFrom": [
        "src/**/*.js"
      ],
      "moduleNameMapper": {
        "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga|cur)$": "&lt;rootDir&gt;/src/lib/mocks/FileMock.js"
      }
    },
    "babel": {
      "presets": [
        [
          "@babel/preset-env",
          {
            "useBuiltIns": "usage",
            "targets": {
              "ie": "11"
            }
          }
        ]
      ],
      "plugins": [
        "@babel/plugin-proposal-class-properties"
      ]
    },
    "prettier": {
      "singleQuote": true,
      "trailingComma": "all",
      "printWidth": 100
    }
  }
  </code></pre>
  
  <p>webpack.config.js:</p>
  
  <pre><code>const { join } = require('path');
  const LodashModuleReplacementPlugin = require('lodash-webpack-plugin');
  const { dependencies } = require('../../package.json');
  const sourcePath = join(`${__dirname}/../../src`);
  module.exports = {
    entry: { main: './src/index.js', vendor: Object.keys(dependencies) },
    optimization: { splitChunks: { name: 'vendor', minChunks: 2 } },
    module: {
      rules: [
        {
          test: /\.js$/,
          include: sourcePath,
          loader: 'babel-loader',
          options: {
            presets: [
              [
                '@babel/preset-env',
                {
                  useBuiltIns: 'usage',
                  targets: {
                    ie: 11,
                  },
                },
              ],
            ],
            plugins: ['@babel/plugin-proposal-class-properties', 'lodash'],
          },
        },
      ],
    },
    plugins: [new LodashModuleReplacementPlugin()],
  };
  </code></pre>