diff --git a/package.json b/package.json
index bd9ea80558a12e7db735cc71f4394d6ca5e774f0..9062bd7e8d7cd97fffb55719ad333124ce1b7bd4 100644
--- a/package.json
+++ b/package.json
@@ -44,6 +44,7 @@
     "chalk": "1.1.3",
     "cross-spawn": "4.0.0",
     "css-loader": "0.23.1",
+    "detect-port": "0.1.4",
     "eslint": "3.1.1",
     "eslint-loader": "1.4.1",
     "eslint-plugin-flowtype": "2.4.0",
diff --git a/scripts/eject.js b/scripts/eject.js
index 2772aa2a3b3023be3d184d5d77053797a3b69cd2..0319b00b34f58d5eec6c71be7d095d0e5a43446a 100644
--- a/scripts/eject.js
+++ b/scripts/eject.js
@@ -40,7 +40,6 @@ prompt(
     path.join('scripts', 'build.js'),
     path.join('scripts', 'start.js'),
     path.join('scripts', 'utils', 'chrome.applescript'),
-    path.join('scripts', 'utils', 'detectPort.js'),
     path.join('scripts', 'utils', 'prompt.js')
   ];
 
diff --git a/scripts/start.js b/scripts/start.js
index 3c8d8e468253735e9111fecd8739ff0eb7c6f182..c93754df3b05c319397e6de34fc56e9873bf14da 100644
--- a/scripts/start.js
+++ b/scripts/start.js
@@ -15,7 +15,7 @@ var webpack = require('webpack');
 var WebpackDevServer = require('webpack-dev-server');
 var execSync = require('child_process').execSync;
 var opn = require('opn');
-var detect = require('./utils/detectPort');
+var detect = require('detect-port');
 var prompt = require('./utils/prompt');
 var config = require('../config/webpack.config.dev');
 
diff --git a/scripts/utils/detectPort.js b/scripts/utils/detectPort.js
deleted file mode 100644
index 759a59f8d04e7f440ebef9aeef67e658421f2bab..0000000000000000000000000000000000000000
--- a/scripts/utils/detectPort.js
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ================================================================
- * detect-port by xdf(xudafeng[at]126.com)
- *
- * first created at : Tue Mar 17 2015 00:16:10 GMT+0800 (CST)
- *
- * ================================================================
- * Copyright xdf
- *
- * Licensed under the MIT License
- * You may not use this file except in compliance with the License.
- *
- * ================================================================ */
-
-// We are forking this temporarily to resolve
-// https://github.com/facebookincubator/create-react-app/issues/302.
-
-// We can replace this fork with `detect-port` package when this is merged:
-// https://github.com/xudafeng/detect-port/pull/4.
-
-'use strict';
-
-var net = require('net');
-
-var inject = function(port) {
-  var options = global.__detect ? global.__detect.options : {};
-
-  if (options.verbose) {
-    console.log('port %d was occupied', port);
-  }
-};
-
-function detect(port, fn) {
-
-  var _detect = function(port) {
-    return new Promise(function(resolve, reject) {
-      var socket = new net.Socket();
-      socket.once('error', function() {
-        socket.removeAllListeners('connect');
-        socket.removeAllListeners('error');
-        socket.end();
-        socket.destroy();
-        socket.unref();
-        var server = new net.Server();
-        server.on('error', function() {
-          inject(port);
-          port++;
-          resolve(_detect(port));
-        });
-
-        server.listen(port, function() {
-          server.once('close', function() {
-            resolve(port);
-          });
-          server.close();
-        });
-      });
-      socket.once('connect', function() {
-        inject(port);
-        port++;
-        resolve(_detect(port));
-        socket.removeAllListeners('connect');
-        socket.removeAllListeners('error');
-        socket.end();
-        socket.destroy();
-        socket.unref();
-      });
-      socket.connect({
-        port: port
-      });
-    });
-  }
-
-  var _detect_with_cb = function(_fn) {
-    _detect(port)
-      .then(function(result) {
-        _fn(null, result);
-      })
-      .catch(function(e) {
-        _fn(e);
-      });
-  };
-
-  return fn ? _detect_with_cb(fn) : _detect(port);
-}
-
-module.exports = detect;