当我运行goapp服务时,我收到了这个警告。
警告2014-07-03 10:39:40,724 inotify_file_watcher.py:143]您的应用程序中有太多目录需要监视所有目录中的更改。您可能必须重新启动开发服务器才能看到对文件的某些更改
原因可能是因为npm_modules文件夹。我尝试在app.yaml中使用skip_files解决它,但警告仍然存在。
skip_files:
- ^(.*/)?.*/node_modules/.*$
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
我该怎么办?
答案 0 :(得分:1)
我通过编辑位于go_appengine / google / appengine / tools / devappserver2的watcher_common.py中的一行来解决此问题。
_IGONERD_DIRS = ('.git', '.hg', '.svn', 'node_modules')
答案 1 :(得分:1)
对于撰写此答案时的最新SDK 1.9.51
,我刚刚将node_modules
添加到_IGNORED_PREFIX
变量。
_IGNORED_PREFIX = ('.', 'node_modules')
答案 2 :(得分:0)
更改此变量的数量_MAX_MONITORED_FILES解决了我的问题。我知道这不是最好的选择,但它有效。设置为10000,我已经改为50000
答案 3 :(得分:0)
在我的情况下unset
我的GOPATH解决了这个问题。我正在使用一个全球的,有很多东西。
$ unset GOPATH
$ gcloud --version
Google Cloud SDK 148.0.0
app-engine-go
app-engine-go-darwin-x86_64 1.9.50
app-engine-python 1.9.50
另请参阅the related post on The Go Blog:
直到最近,App Engine SDK中的工具还没有意识到 工作区。没有工作空间,"去得到"命令无法运行, 所以应用程序作者必须安装和更新他们的应用程序依赖项 手动。这是一种痛苦。
App Engine SDK的1.7.4版本已经改变了。该 dev_appserver和appcfg工具现在可以识别工作区。跑步时 在本地或上传应用程序,这些工具现在搜索依赖项 在GOPATH环境变量指定的工作空间中。
答案 4 :(得分:0)
在Linux中,在启动服务器之前运行以下内容:
sudo sysctl fs.inotify.max_user_watches=16000
按顺序找出适合您情况的大致正确的号码,然后转到您的应用目录并运行:
find -L . | wc -l
查看您拥有的文件数量。使用略高于命令回波的数字。
注意1:您可以通过运行以下命令查看原始值,以查看操作系统中的默认值
cat /proc/sys/fs/inotify/max_user_watches
在我的系统中,默认值为8,192
注意2:每次重新启动时,此更改都会消失,有一种方法可以使其永久化,只需在网络上搜索“max_user_watches”。
答案 5 :(得分:0)
在运行Google Cloud SDK 247.0.0的Mac OS 10.14.5上,app.yaml中的skip_files
变量对此无效。在不更改GAE代码的情况下,唯一对我有用的方法是将watcher_ignore_re
设置为忽略node_modules文件夹:
dev_appserver.py --google_analytics_client_id= --watcher_ignore_re=".*node_modules.*" ...
--google_analytics_client_id=
参数是必需的,否则将报告here报错,指出watcher_ignore_re
中的正则表达式不是JSON可序列化的