我有一个项目,我最近从rails 5.0迁移到rails 5.1,在此之前我有webpacker安装,我用capistrano部署它,在rails 5.0中一切正常,但是当我做了更改时,现在capistrano无法完成资产:预编译任务,我收到此错误:
部署失败有关详细信息,请参阅log / capistrano.log . 以下是最后20行:..... DEBUG [04ae7a64]命令:cd / home / deploy / my-site / releases / 20170602233846 &&(导出RAILS_ENV =“staging”;〜/ .rvm / bin / rvm默认为捆绑exec rake资产:预编译)
DEBUG [04ae7a64]纱线安装v0.24.5
DEBUG [04ae7a64] [1/4]解决方案......
DEBUG [04ae7a64] [2/4]获取包......
DEBUG [04ae7a64]警告fsevents@1.1.1:平台“linux”与此模块不兼容 .
DEBUG [04ae7a64] info“fsevents@1.1.1”是可选的依赖项和兼容性检查失败 . 从安装中排除它 .
DEBUG [04ae7a64] [3/4]链接依赖...
DEBUG [04ae7a64] [4/4]建造新包装......
DEBUG [04ae7a64]于9.29s完成 .
我正在使用带有ubuntu的本地计算机,并且ubuntu也安装在服务器中 .
我不知道fsevents@1.1.1作为依赖项需要在哪里,但是我从2天前就无法进行部署,而且我还没有找到解决方案 .
1 回答
EDIT: 我认为我原来的Webpacker安装肯定是出错了 . 使用webpacker的主分支并重新运行
bundle exec rake webpacker:install
已修复此问题 .Original Answer: 我今天遇到了同样的错误 . 我认为
./bin/yarn install --no-progress
这是Rails rake任务自然运行的,必须返回一个非零退出代码 .首先,我尝试重写
yarn:install
rake任务以添加--ignore-optional
,但这不起作用 .通过添加包含以下内容的rake任务
lib/tasks/yarn.rake
,我的部署成功了:这取代了Rails的默认纱线安装rake任务,几乎可以确保Capistrano不会捕获任何错误 . 这不是一个好的解决方案,但至少它可以使部署成功 . 希望合法的纱线安装错误会导致资产构建后期出现另一个错误 .