NW.js中srcDir设为../dist触发glob模式错误的原因咨询
问题:nwbuild配置srcDir结合glob:true时触发路径错误的原因
源文件夹为/dist,在/tool/run.js中运行NW.js脚本。当配置nwbuild的srcDir为"../dist"且glob设为true(默认值)时,触发找不到srcDir(/dist)的glob模式错误,但将glob设为false时可正常运行,想咨询该配置错误的原因。
文件夹结构
/ /build /dist /html package.json /tool run.js
运行代码(/tool/run.js)
await nwbuild({ platform: "linux", arch: "x64", srcDir: "../dist", outDir: "../build/linux64", glob: true // true by default });
原因分析与解决办法
核心原因
当glob: true时,nwbuild会将srcDir的参数当作glob匹配模式来解析,而非普通的目录路径:
../dist作为glob模式,默认会匹配上级目录下名为dist的文件,而不是dist目录本身——glob的匹配逻辑是优先匹配文件,除非你明确指定要匹配目录或目录下的内容。- 当
glob: false时,nwbuild会直接把srcDir当作普通文件系统目录路径处理,自然能正确定位到../dist目录。
解决办法
有两种简单的修复方式:
- 修改glob匹配模式:把
srcDir改成../dist/**,用glob通配符明确匹配dist目录下的所有文件和子目录:await nwbuild({ platform: "linux", arch: "x64", srcDir: "../dist/**", outDir: "../build/linux64", glob: true }); - 明确标识为目录路径:在路径末尾加上斜杠
../dist/,让glob识别这是一个目录:await nwbuild({ platform: "linux", arch: "x64", srcDir: "../dist/", outDir: "../build/linux64", glob: true });
内容的提问来源于stack exchange,提问作者RedGiant
相关产品推荐
相关产品推荐

