[eggjs/egg]egg-development设置ignoreDir无效

2025-11-20 84 views
9
  • Node Version: v8.11.3
  • Egg Version:2.2.1
  • Plugin Name:egg-development
  • Plugin Version:none
  • Platform:macos
  • Mini Showcase Repository:none

在配置文件中设置忽略监听目录

// config.defaults.js

config.development = {
    ignoreDirs: [ 'app/public/node_modules' ],
};

然后运行

npm run dev

控制台结果

> egg-bin dev

2018-09-27 17:16:04,996 INFO 2516 [master] node version v8.12.0
2018-09-27 17:16:04,997 INFO 2516 [master] egg version 2.11.2
2018-09-27 17:16:05,511 INFO 2516 [master] agent_worker#1:2517 started (511ms)
2018-09-27 17:16:06,309 INFO 2516 [master] egg started on http://127.0.0.1:7001 (1312ms)
2018-09-27 17:16 node[2517] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2018-09-27 17:16 node[2517] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2018-09-27 17:16 node[2517] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() => (null) (-22)
2018-09-27 17:16:08,140 ERROR 2517 nodejs.EMFILEError: Error watching file for changes: EMFILE
    at FSEvent.FSWatcher._handle.onchange (fs.js:1359:9)
errno: "EMFILE"
code: "EMFILE"
syscall: "Error watching file for changes:"
filename: null
dir: "xxxxxxxxxxxxx/app/public/node_modules/_extglob@2.0.4@extglob"
name: "EMFILEError"
pid: 2517

回答

3

为什么不考虑放到 app/component 下,然后 dist target 才为 app/public 呢。

ignoreDirs 只是不 trigger event,而不是不 watch

7

@atian25 public放置前端的资源,环境,为什么要跟egg的package.json混在一块?也不方便管理啊

2

你可以放到 app/component/package.json,不要直接放到 public 下

9

@atian25 我放在component下依然会出现上述问题

3

@atian25 非常奇怪的是,我另一个项目也是这样的结构,却不会报错……

6

文件不够多吧,fs.watch node_modules 目录导致的。