Skip to content

Commit 58f46cb

Browse files
authored
Merge pull request #19 from bigmeow/master
fixed: 现在可以支持同时开启多个脚手架项目而不冲突了
2 parents 53b4c1f + 1c07f79 commit 58f46cb

File tree

2 files changed

+25
-14
lines changed

2 files changed

+25
-14
lines changed

template/build/dev-server.js

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var path = require('path')
1010
var express = require('express')
1111
var webpack = require('webpack')
1212
var proxyMiddleware = require('http-proxy-middleware')
13+
var portfinder = require('portfinder')
1314
var webpackConfig = {{#if_or unit e2e}}(process.env.NODE_ENV === 'testing' || process.env.NODE_ENV === 'production')
1415
? require('./webpack.prod.conf')
1516
: {{/if_or}}require('./webpack.dev.conf')
@@ -65,7 +66,7 @@ app.use(require('connect-history-api-fallback')())
6566
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
6667
app.use(staticPath, express.static('./static'))
6768

68-
var uri = 'http://localhost:' + port
69+
// var uri = 'http://localhost:' + port
6970

7071
var _resolve
7172
var readyPromise = new Promise(resolve => {
@@ -82,17 +83,26 @@ var readyPromise = new Promise(resolve => {
8283
// _resolve()
8384
// })
8485

85-
var server = app.listen(port, 'localhost')
86-
87-
// for 小程序的文件保存机制
88-
require('webpack-dev-middleware-hard-disk')(compiler, {
89-
publicPath: webpackConfig.output.publicPath,
90-
quiet: true
86+
module.exports = new Promise((resolve, reject) => {
87+
portfinder.basePort = port
88+
portfinder.getPortPromise()
89+
.then(newPort => {
90+
if (port !== newPort) {
91+
console.log(`${port}端口被占用,开启新端口${newPort}`)
92+
}
93+
var server = app.listen(newPort, 'localhost')
94+
// for 小程序的文件保存机制
95+
require('webpack-dev-middleware-hard-disk')(compiler, {
96+
publicPath: webpackConfig.output.publicPath,
97+
quiet: true
98+
})
99+
resolve({
100+
ready: readyPromise,
101+
close: () => {
102+
server.close()
103+
}
104+
})
105+
}).catch(error => {
106+
console.log('没有找到空闲端口,请打开任务管理器杀死进程端口再试', error)
107+
})
91108
})
92-
93-
module.exports = {
94-
ready: readyPromise,
95-
close: () => {
96-
server.close()
97-
}
98-
}

template/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
"mpvue-loader": "^1.0.8",
2222
"mpvue-webpack-target": "^1.0.0",
2323
"mpvue-template-compiler": "^1.0.6",
24+
"portfinder": "^1.0.13",
2425
"postcss-mpvue-wxss": "^1.0.0",
2526
"px2rpx-loader": "^0.1.8",
2627
"babel-core": "^6.22.1",

0 commit comments

Comments
 (0)