问题描述
我尝试执行
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
不工作。
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);