Ruby on Rails therubyracer0.12.3的问题

问题描述

我尝试执行

bundle i

我收到一条错误消息: 安装therubyracer(0.12.3)时发生错误,并且Bundler无法继续。 捆绑之前,请确保gem install therubyracer -v '0.12.3'成功。

我尝试:

$ gem uninstall libv8
$ gem install therubyracer

并且:

gem list libv8 --remote --all
gem install libv8 -v 3.16.14.19 -- --with-system-v8
gem install therubyracer -- --with-v8-dir=/Users/MY_NAME/homebrew/opt/v8@3.15

不工作。

我有结果文件 gem_make.out

current directory: /Users/MY_NAME/.rvm/gems/ruby-2.5.1/gems/therubyracer-0.12.3/ext/v8
/Users/MY_NAME/.rvm/rubies/ruby-2.5.1/bin/ruby -I /Users/MY_NAME/.rvm/rubies/ruby- 
2.5.1/lib/ruby/site_ruby/2.5.0 -r ./siteconf20200814-13680-i9h23c.rb extconf.rb --with-v8- 
dir\=/Users/MY_NAME/homebrew/opt/v8@3.15
checking for -lpthread... *** extconf.rb Failed ***
Could not create Makefile due to some reason,probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
--with-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=/Users/MY_NAME/.rvm/rubies/ruby-2.5.1/bin/$(RUBY_BASE_NAME)
--with-pthreadlib
--without-pthreadlib
/Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:456:in `try_do': The compiler                 Failed to generate an executable file. (RuntimeError)
You have to install development tools first.
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:541:in `try_link0'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:559:in `try_link'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:777:in `try_func'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:1004:in `block in     have_library'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:947:in `block in checking_for'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:350:in `block (2 levels) in postpone'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:320:in `open'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:350:in `block in postpone'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:320:in `open'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:346:in `postpone'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:946:in `checking_for'
from /Users/MY_NAME/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/mkmf.rb:999:in `have_library'
from extconf.rb:3:in `<main>'

To see why this extension Failed to compile,please check the mkmf.log which can be found here:

/Users/MY_NAME/.rvm/gems/ruby-2.5.1/extensions/x86_64-darwin-17/2.5.0/therubyracer-    0.12.3/mkmf.log

extconf Failed,exit code 1

解决方法

这对我很有帮助:

const input = 
    [
      ['/Local1','Local1','Local'],['/Local2','Local2',['/Forign1','Forign1','Forign'],['/Forign2','Forign2',];
    
 var selected = '/Local1'; 
 

var result = input.reduce( (acc,[href,label,group]) => {
   if(!acc.hasOwnProperty(group))
      acc[group] = [];
   acc[group].push({
     href,active:(selected == href) ? ' active' : ''
   });
   return acc;
},{});

console.log(result);