首页 文章

Webpacker,Yarn和capistrano,fsevents @ 1.1.1错误

提问于
浏览
2

我有一个项目,我最近从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 回答

  • 2

    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 ,我的部署成功了:

    namespace :yarn do
      desc "Install all JavaScript dependencies as specified via Yarn"
      task :install do
        puts "Ignoring yarn install failure"
    
        begin
          system "./bin/yarn install --no-progress --ignore-optional; true"
        rescue
          exit(true)
        end
    
        exit(true)
      end
    end
    
    task(:default).clear.enhance(['yarn:install'])
    
    # Run Yarn prior to Sprockets assets precompilation, so dependencies are available for use.
    if Rake::Task.task_defined?("assets:precompile")
      Rake::Task["assets:precompile"].enhance [ "yarn:install" ]
    end
    

    这取代了Rails的默认纱线安装rake任务,几乎可以确保Capistrano不会捕获任何错误 . 这不是一个好的解决方案,但至少它可以使部署成功 . 希望合法的纱线安装错误会导致资产构建后期出现另一个错误 .

相关问题