Open yangxu52 opened 1 month ago
建议,检查参数newFilePath
的值存在多重路径的问题'D:\Code\project\dist\D:\Code\project\public\data\images\posz.avif'
https://github.com/60late/vite-plugin-minipic/blob/364fff2d75f23cc1915d9ebc33719d749a07369f/src/index.ts#L278-L292
node:
20.15.x
vite:5.3.x
vite-plugin-minipic:1.1.3
我的配置
{ sharpOptions: { avif: { lossless: true }, }, convert: [ { from: 'png', to: 'avif' }, { from: 'jpg', to: 'avif' }, { from: 'jpeg', to: 'avif' }, ], cache: true, }
build时候报错:(可复现)
[vite-plugin-minipic] ENOENT: no such file or directory, open 'D:\Code\project\dist\D:\Code\project\public\data\images\posz.avif' at Object.openSync (node:fs:581:18) at Object.writeFileSync (node:fs:2365:35) at changePublicOutput (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:288:9) at file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:265:7 at async Promise.all (index 0) at async handleGenerateImgFiles (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:268:3) at async handleGeneratePublic (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:392:3) at async Object.generateBundle (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:405:7) at async Bundle.generate (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:18153:9) at async file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:20692:27 at async catchUnfinishedHookActions (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:20119:16) at async build (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.6_terser@5.31.1/node_modules/vite/dist/node/chunks/dep-CzJTQ5q7.js:65741:16) at async CAC.<anonymous> (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.6_terser@5.31.1/node_modules/vite/dist/node/cli.js:828:5) ELIFECYCLE Command failed with exit code 1.
1. 我想排除
public/data
目录下的所有文件,但是在exclude
中使用正则去匹配路径,都失败了,想请教如何编写对应正则。 2. 修复bug。
1.目前exclude的粒度只做到了文件级,暂不支持对目录级别进行排除和包括。这个问题我会加入到后续的更新计划,重写include和exclude模块 2.该bug已和#13的bug一同修复。升级至1.2.0版本后进行尝试
node:
20.15.x
vite:5.3.x
vite-plugin-minipic:1.1.3
我的配置{ sharpOptions: { avif: { lossless: true }, }, convert: [ { from: 'png', to: 'avif' }, { from: 'jpg', to: 'avif' }, { from: 'jpeg', to: 'avif' }, ], cache: true, }
build时候报错:(可复现)
[vite-plugin-minipic] ENOENT: no such file or directory, open 'D:\Code\project\dist\D:\Code\project\public\data\images\posz.avif' at Object.openSync (node:fs:581:18) at Object.writeFileSync (node:fs:2365:35) at changePublicOutput (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:288:9) at file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:265:7 at async Promise.all (index 0) at async handleGenerateImgFiles (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:268:3) at async handleGeneratePublic (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:392:3) at async Object.generateBundle (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.1.3_rollup@4.18.0/node_modules/vite-plugin-minipic/dist/index.mjs:405:7) at async Bundle.generate (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:18153:9) at async file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:20692:27 at async catchUnfinishedHookActions (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.0/node_modules/rollup/dist/es/shared/node-entry.js:20119:16) at async build (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.6_terser@5.31.1/node_modules/vite/dist/node/chunks/dep-CzJTQ5q7.js:65741:16) at async CAC.<anonymous> (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.6_terser@5.31.1/node_modules/vite/dist/node/cli.js:828:5) ELIFECYCLE Command failed with exit code 1.
1. 我想排除
public/data
目录下的所有文件,但是在exclude
中使用正则去匹配路径,都失败了,想请教如何编写对应正则。 2. 修复bug。1.目前exclude的粒度只做到了文件级,暂不支持对目录级别进行排除和包括。这个问题我会加入到后续的更新计划,重写include和exclude模块 2.该bug已和#13的bug一同修复。升级至1.2.0版本后进行尝试
还是报错,路径理面还是嵌套了D:xxxx的完整路径,日志:
[vite-plugin-minipic] ENOENT: no such file or directory, mkdir 'D:\Code\project\dist\D:\Code\project\public\data\images'
at Object.mkdirSync (node:fs:1372:26)
at safetyWriteFile (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:223:9)
at changePublicOutput (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:298:5)
at file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:274:7
at async Promise.all (index 0)
at async handleGenerateImgFiles (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:277:3)
at async handleGeneratePublic (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:402:3)
at async Object.generateBundle (file:///D:/Code/project/node_modules/.pnpm/vite-plugin-minipic@1.2.0_rollup@4.18.1/node_modules/vite-plugin-minipic/dist/index.mjs:415:7)
at async Bundle.generate (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.1/node_modules/rollup/dist/es/shared/node-entry.js:18122:9)
at async file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.1/node_modules/rollup/dist/es/shared/node-entry.js:20661:27
at async catchUnfinishedHookActions (file:///D:/Code/project/node_modules/.pnpm/rollup@4.18.1/node_modules/rollup/dist/es/shared/node-entry.js:20088:16)
at async build (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.8/node_modules/vite/dist/node/chunks/dep-CzJTQ5q7.js:65741:16)
at async CAC.<anonymous> (file:///D:/Code/project/node_modules/.pnpm/vite@5.3.3_@types+node@20.14.10_sass@1.77.8/node_modules/vite/dist/node/cli.js:828:5)
ELIFECYCLE Command failed with exit code 1.
通过打log,调用链向上找到handleGenerateImgFile
函数中const imgInfo = getImgInfo(filePath);
语句,调用的getImgInfo
函数中的replace没有生效,因filePath
和path.sep
带过来的路径用的是\
,publicDir
则是/
,匹配失败。
https://github.com/60late/vite-plugin-minipic/blob/5d6c309ef849f77540e8ac9652e43d40713782a2/src/index.ts#L212-L213
后续就没有继续向上Log了,windows环境,poweshell。我有空试试Linux下bash的情况。
node:
20.15.x
vite:5.3.x
vite-plugin-minipic:1.1.3
我的配置
build时候报错:(可复现)
1. 我想排除
public/data
目录下的所有文件,但是在exclude
中使用正则去匹配路径,都失败了,想请教如何编写对应正则。 2. 修复bug。