Skip to content

Commit 21f2c3a

Browse files
authored
Merge pull request #67 from pengzhanbo/fix_65
2 parents 20b8d04 + bb38bbf commit 21f2c3a

File tree

2 files changed

+27
-11
lines changed

2 files changed

+27
-11
lines changed

src/build.ts

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,15 @@ import fg from 'fast-glob'
88
import isCore from 'is-core-module'
99
import type { Plugin, ResolvedConfig } from 'vite'
1010
import { createFilter } from '@rollup/pluginutils'
11-
import { name, version } from '../package.json'
11+
import c from 'picocolors'
1212
import { aliasMatches, transformWithEsbuild } from './compiler'
1313
import { viteDefine } from './define'
1414
import type { MockServerPluginOptions, ServerBuildOption } from './types'
1515
import { ensureProxies, lookupFile, normalizePath } from './utils'
1616

17+
declare const __PACKAGE_NAME__: string
18+
declare const __PACKAGE_VERSION__: string
19+
1720
type PluginContext<T = Plugin['buildEnd']> = T extends (
1821
this: infer R,
1922
...args: any[]
@@ -73,15 +76,21 @@ export async function generateMockServer(
7376
source: generatePackageJson(pkg, mockDeps),
7477
},
7578
]
76-
7779
try {
7880
if (path.isAbsolute(outputDir)) {
79-
for (const { filename } of outputList)
80-
await fsp.rm(filename)
81-
82-
fs.mkdirSync(outputDir, { recursive: true })
83-
for (const { filename, source } of outputList)
81+
for (const { filename } of outputList) {
82+
if (fs.existsSync(filename))
83+
await fsp.rm(filename)
84+
}
85+
config.logger.info(`${c.green('✓')} generate mock server in ${c.cyan(outputDir)}`)
86+
for (const { filename, source } of outputList) {
87+
fs.mkdirSync(path.dirname(filename), { recursive: true })
8488
await fsp.writeFile(filename, source, 'utf-8')
89+
const sourceSize = (source.length / 1024).toFixed(2)
90+
const name = path.relative(outputDir, filename)
91+
const space = name.length < 30 ? ' '.repeat(30 - name.length) : ''
92+
config.logger.info(` ${c.green(name)}${space}${c.bold(c.dim(`${sourceSize} kB`))}`)
93+
}
8594
}
8695
else {
8796
for (const { filename, source } of outputList) {
@@ -93,12 +102,14 @@ export async function generateMockServer(
93102
}
94103
}
95104
}
96-
catch {}
105+
catch (e) {
106+
console.error(e)
107+
}
97108
}
98109

99110
function getMockDependencies(deps: Metafile['inputs'], alias: ResolvedConfig['resolve']['alias']): string[] {
100111
const list = new Set<string>()
101-
const excludeDeps = [name, 'connect', 'cors']
112+
const excludeDeps = [__PACKAGE_NAME__, 'connect', 'cors']
102113
const isAlias = (p: string) => alias.find(({ find }) => aliasMatches(find, p))
103114
Object.keys(deps).forEach((mPath) => {
104115
const imports = deps[mPath].imports
@@ -123,7 +134,7 @@ function generatePackageJson(pkg: any, mockDeps: string[]) {
123134
},
124135
dependencies: {
125136
'connect': '^3.7.0',
126-
'vite-plugin-mock-dev-server': `^${version}`,
137+
'vite-plugin-mock-dev-server': `^${__PACKAGE_VERSION__}`,
127138
'cors': '^2.8.5',
128139
} as Record<string, string>,
129140
pnpm: { peerDependencyRules: { ignoreMissing: ['vite'] } },
@@ -153,7 +164,7 @@ function generatorServerEntryCode(
153164
return `import { createServer } from 'node:http';
154165
import connect from 'connect';
155166
import corsMiddleware from 'cors';
156-
import { baseMiddleware, mockWebSocket, createLogger } from 'vite-plugin-mock-dev-server';
167+
import { baseMiddleware, createLogger, mockWebSocket } from 'vite-plugin-mock-dev-server';
157168
import mockData from './mock-data.js';
158169
159170
const app = connect();

tsup.config.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { defineConfig } from 'tsup'
2+
import { name, version } from './package.json'
23

34
export default defineConfig({
45
entry: ['src/index.ts'],
@@ -7,5 +8,9 @@ export default defineConfig({
78
dts: true,
89
splitting: false,
910
clean: true,
11+
define: {
12+
__PACKAGE_NAME__: JSON.stringify(name),
13+
__PACKAGE_VERSION__: JSON.stringify(version),
14+
},
1015
format: ['esm', 'cjs'],
1116
})

0 commit comments

Comments
 (0)