## Background 目前egg-script slogs输出目录指定为 HOME下的logs目录 没有则会创建  而在生产环境上 我并没有在HOME目录下创建文件夹的权限,这个权限也不能给。但是在应用的目录创建文件的权限是有的 ## Proposal 建议能指定egg-scripts的 logs 输出目录
Activity
thonatos commentedon Aug 28, 2019
Config 可以配置,请查阅文档。
fall-wind commentedon Aug 29, 2019
你说的是egg的日志吧,那个我已经配置了。 我说的是egg-scripts的logs目录的更改。它们的配置应该不是公用的,如果文档上有说明,请帮忙指出。谢谢
fall-wind commentedon Aug 29, 2019
看了一下node-homedir的实现 暂时我将启动命令更改为
我将MOCK_HOME_DIR环境变量设置为一个我有权限的目录下,可以暂时实现我的需求,不知道这种方式有没有隐患
atian25 commentedon Aug 30, 2019
不是有个 stdout 和 stderr 的入参么?
https://github.com/eggjs/egg-scripts/blob/master/lib/cmd/start.js
4tj commentedon Sep 9, 2019
@atian25 就算改掉了stdout,但是
run
生成的json文件还是没权限写入的。尤其是在严格限制执行环境的比如gae上atian25 commentedon Sep 9, 2019
run 生成的文件?这个是在项目根目录下的,GAE 应该有配置 tmp 映射的地方吧,这文件不生成,很难分析线上问题的。
4tj commentedon Sep 9, 2019
eggjs可以指定
run
目录吗,相对于系统路径而不是项目路径的atian25 commentedon Sep 10, 2019
egg/config/config.default.js
Line 117 in 29a2f2f
atian25 commentedon Sep 11, 2019
如果想推动这个解决,很简单。谁来梳理下,现在到底是哪些文件,导致了失败,逐个讨论就完了。
从上面的讨论,我得到的信息是,有 stdout,stderr 入参,再加上 rundir 配置,应该就没问题了吧
fall-wind commentedon Sep 11, 2019
首先egg-script没有参数可以指定输出目录(logs文件夹位置),你给我的建议是指定 stdout,stderr 入参。我看了下实现

就算我同时指定了stdout,stderr 入参 上图标红的地方 依旧会在home下创建logs 文件夹,但我的场景是我没有在home目录下创建文件夹的权限,所以导致启动不了。
我目前的解决方案:
在你们start.js 使用了node-homedir
我看了一下node-homedir的实现:
所以我在启动的时候指定了
MOCK_HOME_DIR
环境变量暂时解决了home下没有权限的问题,但是我这么做相当于是依赖第三方的实现,如果你们后续改版 不使用
node-homedir
,那么我这种临时做法就会出问题。所以回到这个issue本身 我的需求就是可以指定这个logDir
还有 @4tj 的
rundir
配置atian25 commentedon Sep 11, 2019
got,明白了。
@fall-wind 可以提个 PR 直接支持下。
WangYang-Rex commentedon Dec 23, 2019
@fall-wind 请问现在解决了吗,要如何修改egg-script的指定输出目录(logs文件夹位置)
fall-wind commentedon Dec 23, 2019
目前暂时在启动的命令添加一个环境变量
这是我的
mock_home
是你自己建的一个文件夹WangYang-Rex commentedon Dec 26, 2019
感谢,这个问题已经解决了
Henry-WHY commentedon Apr 26, 2020
请问你这个写法是有哪里需要额外的配置吗?直接更改 package.json 中的 script,会出现报错
shuidian commentedon Oct 22, 2021
这个issue不应该关闭吧,因为这个问题还是没有解决的。最好的方案还是应该在egg-scripts增加配置,而不是指定环境变量。 @atian25
shuidian commentedon Oct 22, 2021
这里windows和*nix命令不一样,他们应该是linux系统。针对这个有一个跨平台的指令,试试这样写:
"start": "cross-env MOCK_HOME_DIR=./mock_home egg-scripts start --daemon",