static目录文件过多时,uni-app云打包的时候,会too many open files的报错

static目录文件过多时,uni-app云打包的时候,会too many open files的报错

开发环境 版本号 项目创建方式
Windows Windows 11 HBuilderX
家庭中文版 22621.2428
PC
3.95

产品分类:uniapp/App

PC开发环境操作系统:Windows

手机系统:全部

手机厂商:华为

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX


测试过的手机:

mate20

操作步骤:

在static的资源目录下,放置1万个左右的小文件。云打包的时候,就会报错了。

预期结果:

正常打包

实际结果:

[HBuilder] 16:20:04.876 3.95
[HBuilder] 16:20:04.885 正在编译中...
[HBuilder] 16:20:32.177 Module build failed (from ./node_modules/postcss-loader/src/index.js):
[HBuilder] 16:20:32.183 **Error: EMFILE: too many open files, open**
'H:\path\to\project\package.json'
[HBuilder] 16:20:32.190 Module build failed (from ./node_modules/postcss-loader/src/index.js):
[HBuilder] 16:20:32.201 Error: EMFILE: too many open files, open 'H:\path\to\project\postcss.config.js'
[HBuilder] 16:20:32.211     at Object.openSync (node:fs:594:3)
[HBuilder] 16:20:32.221     at Object.readFileSync (node:fs:462:35)
[HBuilder] 16:20:32.231     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1143:18)
[HBuilder] 16:20:32.242     at Module.load (node:internal/modules/cjs/loader:1004:32)
[HBuilder] 16:20:32.252     at Function.Module._load (node:internal/modules/cjs/loader:839:12)
[HBuilder] 16:20:32.262     at Module.require (node:internal/modules/cjs/loader:1028:19)
[HBuilder] 16:20:32.274     at require (node:internal/modules/cjs/helpers:102:18)
[HBuilder] 16:20:32.284     at module.exports (H:\path\to\project\node_modules\import-fresh\index.js:28:9)
[HBuilder] 16:20:32.297     at loadJs (H:\path\to\project\node_modules\cosmiconfig\dist\loaders.js:9:18)
[HBuilder] 16:20:32.298     at Explorer.loadFileContent (H:\path\to\project\node_modules\cosmiconfig\dist\createExplorer.js:230:12)
[HBuilder] 16:20:32.310     at H:\path\to\project\node_modules\cosmiconfig\dist\createExplorer.js:252:21

更多关于static目录文件过多时,uni-app云打包的时候,会too many open files的报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

3.98版本已经解决。

更多关于static目录文件过多时,uni-app云打包的时候,会too many open files的报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 Uni-App 进行云打包时,如果 static 目录下的文件过多,可能会导致 too many open files 的错误。这是因为操作系统对单个进程打开文件的数量有限制,而云打包过程中需要同时打开大量的文件,超出了系统的限制。

解决思路

  1. 增加文件描述符限制: 你可以临时或永久增加系统的文件描述符限制,以允许更多的文件同时打开。

    • 临时增加限制(重启后失效):

      ulimit -n 65536
      
    • 永久增加限制: 编辑 /etc/security/limits.conf 文件,添加以下内容:

      * soft nofile 65536
      * hard nofile 65536
      

      然后编辑 /etc/pam.d/common-session/etc/pam.d/common-session-noninteractive 文件,添加以下内容:

      session required pam_limits.so
回到顶部