Кажется, что этот вопрос есть повсюду на SO, но ответы, похоже, не касаются моей ситуации. Я только начинаю работать с nodejs и реагирую родным образом, поэтому я установил nodejs и выполнил следующие команды, чтобы начать:
$ npm install expo-cli
$ npm update
$ npx expo init helloWorld
Я выбрал минимальный простой рабочий процесс и начал с npx expo start
. npx не смог найти expo-cli, поэтому я переместил каталог node_modules в каталог helloWorld и снова начал с npx expo start
. На этот раз проект запускается нормально, но сразу выдает ошибку о превышении количества наблюдателей, скорее всего, из-за большого количества файлов, которые он пытается просмотреть после добавления каталога node_modules:
internal/fs/watchers.js:186
throw error;
^
Error: ENOSPC: System limit for number of file watchers reached, watch '/home/drew/helloWorld/node_modules/css-tree'
at FSWatcher.<computed> (internal/fs/watchers.js:178:26)
at Object.watch (fs.js:1445:34)
at NodeWatcher.watchdir (/home/drew/helloWorld/node_modules/sane/src/node_watcher.js:159:22)
at Walker.<anonymous> (/home/drew/helloWorld/node_modules/sane/src/common.js:109:31)
at Walker.emit (events.js:315:20)
at /home/drew/helloWorld/node_modules/walker/lib/walker.js:69:16
at FSReqCallback.oncomplete (fs.js:163:23) {
errno: -28,
syscall: 'watch',
code: 'ENOSPC',
path: '/home/drew/helloWorld/node_modules/css-tree',
filename: '/home/drew/helloWorld/node_modules/css-tree'
}
Все основные ответы, которые я нашел здесь в поисках решений, были связаны со сторожем, но у меня его нет, и реагировать на него, похоже, вместо этого используется fs.watch. один важный вопрос, который я нашел, предполагает, что нет возможности добавить список игнорирования, как в watchman:
Не похоже, что это возможно. Просто посмотрите на путь в слушателе и ничего не делайте, если он начинается с node_modules.
Это не может сильно сказаться на производительности, если только вы не обновляете модули постоянно во время работы узла, что было бы немного странно.
Разве я не должен так настраивать свою среду разработки? Я хочу максимально изолировать проекты (исходящие от python, где virtualenv очень важен), но похоже, что это создает больше проблем, чем я ожидал. Как я могу это исправить, не прибегая к установке всего глобального?