我正在使用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/

10-15 21:27