错误:EMFILE:获胜时打开的文件过多

时间:2018-09-19 09:15:32

标签: node.js visual-studio-code electron

我正在构建类似Vscode的App,我编写了自己的Vscode扩展并将其放入源代码中,效果很好。但是在我使用gulp命令打包我的应用程序后,这是错误的:(在Mac OS上有效)

[17:07:59] Finished 'optimize-vscode' after 23 s
[17:07:59] Starting 'vscode-win32-x64'...
[17:08:31] Downloading extension: ms-vscode.node-debug2@1.25.6 ...
[17:08:32] Downloading extension: ms-vscode.node-debug@1.25.4 ...

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: EMFILE: too many open files, open 'C:\Gitlab-Runner\builds\251c7da1\0\Haochen_super\IDE\extensions\hap-transformer\node_modules\qa-transformer\build\core\transformers\style\rules\declaration\dimension.js' 

有人可以在Windows上解决此问题吗??

1 个答案:

答案 0 :(得分:0)

不确定这是否是相同的问题,如果是-投票支持我的答案,否则-继续搜索。

使用Visual Studio或可视代码进行调试时-Visual Studio将调试会话的日志保存在文件%TEMP%\vscode-node-debug2.txt中。

这确实是很长的日志文本,很难阅读,而且了解出了什么问题。但就我而言,我发现了以下日志条目(接近日志结尾的地方):

↠From target: {"method":"Runtime.consoleAPICalled","params":{"type":"error","args":[{"type":"string","value":"WebpackO
ptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does
not match the API schema.\n - configuration.context: The provided value \"D:\\\\!deleteme!\\\\VuejsApp1\\\\VuejsApp1\" co
ntains exclamation mark (!) which is not allowed because it's reserved for loader syntax.\n   -\u003E The base directory

也有许多EMFILE日志条目,但这不是失败的根本原因。

在我的情况下,根本原因是我在路径D:\!deleteme!\VueJsApp中使用了特殊字符,并且通过简单地创建不带感叹号的目录来解决了该问题。

我仍然无法调试VueJsApp-我怀疑是由于.vue导致.js转换,但是普通的javascript仍然可以调试。