gpt4 book ai didi

node.js - 为什么 OpenShift 上的 Ghost node_modules 比本地大得多?

转载 作者:太空宇宙 更新时间:2023-11-04 02:31:21 24 4
gpt4 key购买 nike

我使用 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 .

应用程序部署是否保存应用程序根的先前版本?我找到了一个以提交日期作为文件夹名称的文件夹。

然后对于应用程序根文件夹:

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中,我看到了bower模块,它是在package.json的devDependency中定义的。

我将 openshift 的环境变量设置为生产环境,为什么 devDependency 中的所有内容仍然在那里?

NODE_ENV=生产NPM_CONFIG_PRODUCTION=true

如何删除这些额外的模块并节省一些磁盘空间?

最佳答案

My whole code package is about 80m (including production node_modules, which is about 24m), mysql file is about 50m. Openshift shows me a warning message that I have used 97% of the total 1GB. How does this happen?

这似乎是一个显而易见的答案,但请坚持下去。该消息意味着您的存储配额已满 97%。虽然您的代码可能只是其中的一小部分,但还有其他一些东西使用 OpenShift Gear 上的存储。例如,应用程序部署(见下文)有时会占用大量存储空间。 $OPENSHIFT_DATA_DIR (~/app-root/data) 中的内容也可以。

Does app-deployments save one previous version of app-root?

是的,此功能允许您轻松回滚到应用程序的早期版本。缺点是它会消耗大量默认存储空间。您可以使用

禁用此功能

rhc app configure <appname> -keep-deployments 0

when I have node_modules in my project, why it still install it to glocal? Can I change it?

Node 模块目前无法全局安装,因此必须在您的设备中本地安装。

I set env var for openshift to be production, why everything in devDependencies still in there?

这与容器的工作方式有关。您所做的一切都存储在您的安全容器中。设置生产环境变量只是改变 Node 启动的方式

How can I remove those extra modules and save some disk space?

您可以尝试使用 npm 删除设备上的一些应用程序,但我建议您省去麻烦,要么摆脱上面提到的应用程序部署,要么直接升级。

关于node.js - 为什么 OpenShift 上的 Ghost node_modules 比本地大得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26446257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com