我正在使用Openshift部署我的Ghost博客。我的整个代码包约为80m(包括生产node_modules,约为24m),mysql文件约为50m。 Openshift向我显示一条警告消息,表明我已使用了总1GB的97%。这是怎么发生的?如果正常,我愿意升级它,但是我想弄清楚我做错了什么。
我使用SSH检查文件夹大小,du -m --max-depth=1
得到了我的根文件夹的文件夹大小结果,如下所示:
1 ./.node-gyp
1 ./nodejs
du: cannot read directory `./.ssh': Permission denied
1 ./.ssh
du: cannot read directory `./.sandbox': Permission denied
1 ./.sandbox
52 ./mysql
1 ./.gem
1 ./.openshift_ssh
1 ./.auth
1 ./phpmyadmin
58 ./git
334 ./app-root
du: cannot read directory `./.tmp': Permission denied
1 ./.tmp
1 ./.env
325 ./app-deployments
768 .
应用程序部署是否保存一个先前版本的应用程序根目录?我找到了一个以提交日期作为文件夹名称的文件夹。
然后对于app-root文件夹:
4 ./logs
5 ./data
325 ./runtime
334 .
对于运行时文件夹:
140 ./dependencies
1 ./build-dependencies
186 ./repo
325 .
对于回购文件夹:
1 ./.openshift
7 ./core
5 ./content
175 ./node_modules
186 .
对于依存关系文件夹,依存关系文件夹有什么作用?
1 ./nodejs
140 ./.npm
140 .
npm文件夹是npm的全局文件夹吗?当我的项目中有node_modules时,为什么仍将其安装到glocal?我可以改变吗?
然后在node_modules中,我看到了package.json中
bower
中定义的devDependencies
模块。我将env var设置为openshift生产,为什么devDependencies中的所有内容仍然存在?
NODE_ENV =生产
NPM_CONFIG_PRODUCTION =真
如何删除那些多余的模块并节省一些磁盘空间?
最佳答案
我的整个代码包约为80m(包括生产node_modules,
(大约24m),mysql文件大约50m。 Openshift给我看了一个
警告消息,我已使用了1GB总量的97%。这个怎么样
发生?
这似乎是一个显而易见的答案,但仍然存在。该消息表示您的存储配额已满97%。虽然您的代码可能只是其中的一小部分,但还有其他一些东西在OpenShift Gear上使用存储。例如,应用程序部署(见下文)有时会占用大量存储空间。 $ OPENSHIFT_DATA_DIR(〜/ app-root / data)中的内容也可以。
应用程序部署是否保存一个先前版本的应用程序根目录?
是的,此功能使您可以轻松回滚到应用程序的早期版本。缺点是它会占用大量默认存储空间。您可以通过禁用它rhc app configure <appname> -keep-deployments 0
当我的项目中有node_modules时,为什么仍将其安装到
全球本地人?我可以改变吗?
目前无法在全球范围内安装节点模块,因此必须在您的设备中本地安装它们。
我将env var设置为openshift生产,为什么所有
devDependencies还在那里吗?
这与容器的工作方式有关。您所做的一切都存储在安全容器中。设置生产环境变量只会更改节点启动的方式
如何删除那些多余的模块并节省一些磁盘空间?
您可以尝试使用npm删除其中的一些齿轮,但是我建议您只是为自己省去麻烦,或者摆脱上面提到的应用程序部署,或者只是升级。
关于node.js - 为什么Ghost node_modules在openshift上比在本地上大得多?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26446257/