-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite-fs-polyfill-plugin.js
More file actions
110 lines (110 loc) · 3.83 KB
/
vite-fs-polyfill-plugin.js
File metadata and controls
110 lines (110 loc) · 3.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Plugin personalizado para manejar polyfills de fs
export function fsPolyfillPlugin() {
return {
name: 'fs-polyfill',
resolveId(id) {
// Manejar todas las variantes de fs
if (id === 'fs' || id === 'node:fs') {
return '\0fs-polyfill';
}
if (id === 'fs/promises' || id === 'node:fs/promises') {
return '\0fs-promises-polyfill';
}
return null;
},
load(id) {
if (id === '\0fs-polyfill') {
return `
export const readFile = () => {
throw new Error('fs.readFile no está disponible en el navegador');
};
export const writeFile = () => {
throw new Error('fs.writeFile no está disponible en el navegador');
};
export const mkdir = () => {
throw new Error('fs.mkdir no está disponible en el navegador');
};
export const readdir = () => {
throw new Error('fs.readdir no está disponible en el navegador');
};
export const stat = () => {
throw new Error('fs.stat no está disponible en el navegador');
};
export const access = () => {
throw new Error('fs.access no está disponible en el navegador');
};
export const existsSync = () => false;
export const readFileSync = () => {
throw new Error('fs.readFileSync no está disponible en el navegador');
};
export const writeFileSync = () => {
throw new Error('fs.writeFileSync no está disponible en el navegador');
};
export const promises = {
readFile: async () => {
throw new Error('fs/promises.readFile no está disponible en el navegador');
},
writeFile: async () => {
throw new Error('fs/promises.writeFile no está disponible en el navegador');
},
mkdir: async () => {
throw new Error('fs/promises.mkdir no está disponible en el navegador');
},
readdir: async () => {
throw new Error('fs/promises.readdir no está disponible en el navegador');
},
stat: async () => {
throw new Error('fs/promises.stat no está disponible en el navegador');
},
access: async () => {
throw new Error('fs/promises.access no está disponible en el navegador');
}
};
export default {
readFile,
writeFile,
mkdir,
readdir,
stat,
access,
existsSync,
readFileSync,
writeFileSync,
promises
};
`;
}
if (id === '\0fs-promises-polyfill') {
return `
export const readFile = async () => {
throw new Error('fs/promises.readFile no está disponible en el navegador');
};
export const writeFile = async () => {
throw new Error('fs/promises.writeFile no está disponible en el navegador');
};
export const mkdir = async () => {
throw new Error('fs/promises.mkdir no está disponible en el navegador');
};
export const readdir = async () => {
throw new Error('fs/promises.readdir no está disponible en el navegador');
};
export const stat = async () => {
throw new Error('fs/promises.stat no está disponible en el navegador');
};
export const access = async () => {
throw new Error('fs/promises.access no está disponible en el navegador');
};
export default {
readFile,
writeFile,
mkdir,
readdir,
stat,
access
};
`;
}
return null;
}
};
}