Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vipSupplier
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王淑敏
vipSupplier
Commits
9f9eae59
Commit
9f9eae59
authored
Nov 08, 2020
by
chuzhixin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
🚀
Update global mock-server
parent
e6a67de9
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
94 additions
and
106 deletions
+94
-106
mock/index.js
+93
-11
mock/mockServer.js
+0
-93
vue.config.js
+1
-2
No files found.
mock/index.js
View file @
9f9eae59
const
chokidar
=
require
(
'chokidar'
)
const
bodyParser
=
require
(
'body-parser'
)
const
chalk
=
require
(
'chalk'
)
const
path
=
require
(
'path'
)
const
{
mock
}
=
require
(
'mockjs'
)
const
{
baseURL
}
=
require
(
'../src/config'
)
const
mockDir
=
path
.
join
(
process
.
cwd
(),
'mock'
)
const
{
handleMockArray
}
=
require
(
'./utils'
)
/**
* @author chuzhixin 1204505056@qq.com
* @description 导入所有 controller 模块,npm run serve时在node环境中自动输出controller文件夹下Mock接口,请勿修改。
*
* @param app
* @returns {{mockStartIndex: number, mockRoutesLength: number}}
*/
const
registerRoutes
=
(
app
)
=>
{
let
mockLastIndex
const
mocks
=
[]
const
mockArray
=
handleMockArray
()
mockArray
.
forEach
((
item
)
=>
{
const
obj
=
require
(
item
)
mocks
.
push
(...
obj
)
})
const
mocksForServer
=
mocks
.
map
((
route
)
=>
{
return
responseFake
(
route
.
url
,
route
.
type
,
route
.
response
)
})
for
(
const
mock
of
mocksForServer
)
{
app
[
mock
.
type
](
mock
.
url
,
mock
.
response
)
mockLastIndex
=
app
.
_router
.
stack
.
length
}
const
mockRoutesLength
=
Object
.
keys
(
mocksForServer
).
length
return
{
mockRoutesLength
:
mockRoutesLength
,
mockStartIndex
:
mockLastIndex
-
mockRoutesLength
,
}
}
const
{
handleMockArray
}
=
require
(
'./utils'
)
/**
*
* @param url
* @param type
* @param respond
* @returns {{response(*=, *=): void, type: (*|string), url: RegExp}}
*/
const
responseFake
=
(
url
,
type
,
respond
)
=>
{
return
{
url
:
new
RegExp
(
`
${
baseURL
}${
url
}
`
),
type
:
type
||
'get'
,
response
(
req
,
res
)
{
res
.
status
(
200
)
if
(
JSON
.
stringify
(
req
.
body
)
!==
'{}'
)
{
console
.
log
(
chalk
.
green
(
`> 请求地址:
${
req
.
path
}
`
))
console
.
log
(
chalk
.
green
(
`> 请求参数:
${
JSON
.
stringify
(
req
.
body
)}
\n`
))
}
else
{
console
.
log
(
chalk
.
green
(
`> 请求地址:
${
req
.
path
}
\n`
))
}
res
.
json
(
mock
(
respond
instanceof
Function
?
respond
(
req
,
res
)
:
respond
))
},
}
}
/**
*
* @param app
*/
module
.
exports
=
(
app
)
=>
{
app
.
use
(
bodyParser
.
json
())
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
true
,
})
)
const
mockRoutes
=
registerRoutes
(
app
)
let
mockRoutesLength
=
mockRoutes
.
mockRoutesLength
let
mockStartIndex
=
mockRoutes
.
mockStartIndex
chokidar
.
watch
(
mockDir
,
{
ignored
:
/mock-server/
,
ignoreInitial
:
true
,
})
.
on
(
'all'
,
(
event
)
=>
{
if
(
event
===
'change'
||
event
===
'add'
)
{
try
{
app
.
_router
.
stack
.
splice
(
mockStartIndex
,
mockRoutesLength
)
const
mocks
=
[]
const
mockArray
=
handleMockArray
()
mockArray
.
forEach
((
item
)
=>
{
const
obj
=
require
(
item
)
mocks
.
push
(...
obj
)
})
module
.
exports
=
{
mocks
,
Object
.
keys
(
require
.
cache
).
forEach
((
item
)
=>
{
if
(
item
.
includes
(
mockDir
))
{
delete
require
.
cache
[
require
.
resolve
(
item
)]
}
})
const
mockRoutes
=
registerRoutes
(
app
)
mockRoutesLength
=
mockRoutes
.
mockRoutesLength
mockStartIndex
=
mockRoutes
.
mockStartIndex
}
catch
(
error
)
{
console
.
log
(
chalk
.
red
(
error
))
}
}
})
}
mock/mockServer.js
deleted
100644 → 0
View file @
e6a67de9
const
chokidar
=
require
(
'chokidar'
)
const
bodyParser
=
require
(
'body-parser'
)
const
chalk
=
require
(
'chalk'
)
const
path
=
require
(
'path'
)
const
Mock
=
require
(
'mockjs'
)
const
{
baseURL
}
=
require
(
'../src/config'
)
const
mockDir
=
path
.
join
(
process
.
cwd
(),
'mock'
)
/**
*
* @param app
* @returns {{mockStartIndex: number, mockRoutesLength: number}}
*/
const
registerRoutes
=
(
app
)
=>
{
let
mockLastIndex
const
{
mocks
}
=
require
(
'./index.js'
)
const
mocksForServer
=
mocks
.
map
((
route
)
=>
{
return
responseFake
(
route
.
url
,
route
.
type
,
route
.
response
)
})
for
(
const
mock
of
mocksForServer
)
{
app
[
mock
.
type
](
mock
.
url
,
mock
.
response
)
mockLastIndex
=
app
.
_router
.
stack
.
length
}
const
mockRoutesLength
=
Object
.
keys
(
mocksForServer
).
length
return
{
mockRoutesLength
:
mockRoutesLength
,
mockStartIndex
:
mockLastIndex
-
mockRoutesLength
,
}
}
/**
*
* @param url
* @param type
* @param respond
* @returns {{response(*=, *=): void, type: (*|string), url: RegExp}}
*/
const
responseFake
=
(
url
,
type
,
respond
)
=>
{
return
{
url
:
new
RegExp
(
`
${
baseURL
}${
url
}
`
),
type
:
type
||
'get'
,
response
(
req
,
res
)
{
res
.
status
(
200
)
if
(
JSON
.
stringify
(
req
.
body
)
!==
'{}'
)
{
console
.
log
(
chalk
.
green
(
`> 请求地址:
${
req
.
path
}
`
))
console
.
log
(
chalk
.
green
(
`> 请求参数:
${
JSON
.
stringify
(
req
.
body
)}
\n`
))
}
else
{
console
.
log
(
chalk
.
green
(
`> 请求地址:
${
req
.
path
}
\n`
))
}
res
.
json
(
Mock
.
mock
(
respond
instanceof
Function
?
respond
(
req
,
res
)
:
respond
)
)
},
}
}
/**
*
* @param app
*/
module
.
exports
=
(
app
)
=>
{
app
.
use
(
bodyParser
.
json
())
app
.
use
(
bodyParser
.
urlencoded
({
extended
:
true
,
})
)
const
mockRoutes
=
registerRoutes
(
app
)
let
mockRoutesLength
=
mockRoutes
.
mockRoutesLength
let
mockStartIndex
=
mockRoutes
.
mockStartIndex
chokidar
.
watch
(
mockDir
,
{
ignoreInitial
:
true
,
})
.
on
(
'all'
,
(
event
)
=>
{
if
(
event
===
'change'
||
event
===
'add'
)
{
try
{
app
.
_router
.
stack
.
splice
(
mockStartIndex
,
mockRoutesLength
)
Object
.
keys
(
require
.
cache
).
forEach
((
item
)
=>
{
if
(
item
.
includes
(
mockDir
))
{
delete
require
.
cache
[
require
.
resolve
(
item
)]
}
})
const
mockRoutes
=
registerRoutes
(
app
)
mockRoutesLength
=
mockRoutes
.
mockRoutesLength
mockStartIndex
=
mockRoutes
.
mockStartIndex
}
catch
(
error
)
{
console
.
log
(
chalk
.
red
(
error
))
}
}
})
}
vue.config.js
View file @
9f9eae59
...
...
@@ -35,8 +35,7 @@ process.env.VUE_APP_VERSION = version
const
resolve
=
(
dir
)
=>
path
.
join
(
__dirname
,
dir
)
const
mockServer
=
()
=>
{
if
(
process
.
env
.
NODE_ENV
===
'development'
)
return
require
(
'./mock/mockServer.js'
)
if
(
process
.
env
.
NODE_ENV
===
'development'
)
return
require
(
'./mock'
)
else
return
''
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment