Thor empty_directory 命令在 rails composer 自定义配方中从 repo 克隆时引发 'permission denied'

Thor empty_directory command raises 'permission denied' when cloning from repo in rails composer custom recipe

今天我要反对这个:

mkdir': Permission denied @ dir_s_mkdir - /app/assets/stylesheets/material_ui (Errno::EACCES)

我正在创建自己的 rails 作曲家生成器。我想要的是从我的存储库中克隆一些文件,并将它们放入我调用 rails new etc etc... 时生成的应用程序中。生成器运行良好(它克隆了很多文件,它甚至解压缩了一个大字体文件夹!)并且除了一个以外,所有的食谱都在起作用。

这个包含(除其他外)这一行

empty_directory '/app/assets/stylesheets/material_ui'

这个 Thor 动作失败说 'permission denied'。

当然我之前不能CHMOD任何东西,因为在我启动rails new命令之前没有任何文件夹。

如何使用 Thor 在 rails composer 配方中创建目录?

可能目录不存在。记住两者之间的区别:

empty_directory 'app/assets/stylesheets/material_ui'
empty directory '/app/assets/stylesheets/material_ui'

我找到了解决办法。太愚蠢了,但是当我发现其他人遇到这个错误时,我会回答我自己的问题作为文档。

失败在路径中。

empty_directory '/app/assets/stylesheets/material_ui'

不同

empty_directory 'app/assets/stylesheets/material_ui'

第二个是正确的,因为是生成的应用程序的绝对路径

第一个,因为它以 / 开头,被解释为配方执行点的子文件夹,并且由于它不存在,它会引发权限错误。