Skip to content

Commit

Permalink
fix(bundler-vite): build error on windows (#11363)
Browse files Browse the repository at this point in the history
* feat(bundler-vite): fix build error on windows

* feat(bundler-vite): use winPath
  • Loading branch information
xierenyuan authored Aug 1, 2023
1 parent 9d6eaae commit 710db4a
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
49 changes: 49 additions & 0 deletions packages/bundler-vite/src/plugins/deleteOutputFiles.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
import deleteOutputFiles from './deleteOutputFiles';

test('test windows', async () => {
const files = [
'a\\b\\c',
'd\\e\\f',
'node_modules\\.tmp\\.bundler-vite-entry\\umi.html',
];
const beforeDelete = jest.fn();
const plugin = deleteOutputFiles(files, beforeDelete) as any;
const output = {
'a/b/c': {
fileName: 'a/b/c',
},
'd/e/f': {
fileName: 'd/e/f',
},
'node_modules/.tmp/.bundler-vite-entry/umi.html': {
fileName: 'node_modules/.tmp/.bundler-vite-entry/umi.html',
},
};
plugin.generateBundle?.({}, output);
expect(beforeDelete).toBeCalledTimes(3);
expect(output).toEqual({});
});

test('test mac', async () => {
const files = [
'a/b/c',
'd/e/f',
'node_modules/.tmp/.bundler-vite-entry/umi.html',
];
const beforeDelete = jest.fn();
const plugin = deleteOutputFiles(files, beforeDelete) as any;
const output = {
'a/b/c': {
fileName: 'a/b/c',
},
'd/e/f': {
fileName: 'd/e/f',
},
'node_modules/.tmp/.bundler-vite-entry/umi.html': {
fileName: 'node_modules/.tmp/.bundler-vite-entry/umi.html',
},
};
plugin.generateBundle?.({}, output);
expect(beforeDelete).toBeCalledTimes(3);
expect(output).toEqual({});
});
4 changes: 4 additions & 0 deletions packages/bundler-vite/src/plugins/deleteOutputFiles.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import { winPath } from '@umijs/utils';
import type { Plugin } from '../../compiled/vite';

// @ts-ignore
type fileType = Parameters<NonNullable<Plugin['generateBundle']>>[1]['file'];

Expand All @@ -14,6 +16,8 @@ export default function deleteOutputFiles(
name: 'bundler-vite:delete-output-files',
generateBundle(_, output) {
Object.keys(output).forEach((name) => {
// vite use '/' in windows
files = files.map((file) => winPath(file));
if (files.includes(output[name].fileName)) {
beforeDelete(output[name]);
delete output[name];
Expand Down

0 comments on commit 710db4a

Please sign in to comment.