使用NW.js构建桌面应用时遭遇ERR_FS_EISDIR错误求助
解决NW.js nwbuild命令触发ERR_FS_EISDIR错误的方案
问题原因
你执行的命令npx nwbuild ./* --mode=run --version=latest --flavor=sdk中,./* 会将当前目录下所有文件和子目录(包括./cache目录)都作为构建目标传递给nwbuild工具。而nwbuild在处理时会尝试将这些目标当作文件进行复制操作,当遇到./cache这个目录时,就会触发ERR_FS_EISDIR错误(系统尝试对目录执行文件级操作)。
解决方案
方案1:明确指定构建目标(推荐)
不要使用通配符./*,而是直接指定需要打包的源码文件或目录,比如项目入口文件、源码目录、package.json等:
npx nwbuild ./index.html ./package.json ./src --mode=run --version=latest --flavor=sdk
如果所有源码都在某个子目录(比如src),可以直接指向该目录:
npx nwbuild ./src --mode=run --version=latest --flavor=sdk
方案2:排除不需要的目录
如果需要保留根目录通配,可使用nwbuild的--exclude参数(需确认nwbuild版本支持该参数)排除./cache目录:
npx nwbuild ./* --exclude=./cache --mode=run --version=latest --flavor=sdk
方案3:检查package.json配置
确保package.json中的main字段正确指向项目入口文件(比如index.html或主脚本文件),避免nwbuild误将目录识别为入口导致异常。
额外说明
./cache目录通常是依赖缓存或构建生成的临时目录,本身不需要被打包进NW.js应用,排除它不会影响应用功能。- 你通过Volta管理Node.js版本且已匹配NW.js要求,因此版本问题可以排除,核心问题出在构建命令的目标路径选择上。
内容的提问来源于stack exchange,提问作者Sahil Garg
相关产品推荐
相关产品推荐

