2014-04-30 5 views
5

Sono abbastanza nuovo nell'usare grunt, bussola e sass e ho difficoltà a farlo funzionare. Ho un'installazione Redhat con Drupal 7 e quando provo a fare funzionare 'grugnito bussola' dall'interno directory dei temi del sito ricevo il seguente errore:errore di lancio 'grunt compass' che non è nel sistema PERCORSO

Running "compass:dist" (compass) task 
Warning: You need to have Ruby and Compass installed and in your system PATH for this task  to work. More info: https://github.com/gruntjs/grunt-contrib-compass Use --force to continue. 

Aborted due to warnings. 

Ho installato Grunt, Bower, e usato 'bundle install 'per installare le gemme necessarie. Quando eseguo 'gem elenco' ottengo il seguente:

bigdecimal (1.2.4) 
breakpoint (2.0.7) 
bundler (1.6.2) 
bundler-unload (1.0.2) 
chunky_png (1.3.1) 
compass (0.12.6) 
compass-normalize (1.4.3) 
executable-hooks (1.3.1) 
fssm (0.2.10) 
gem-wrappers (1.2.4) 
io-console (0.4.2) 
json (1.8.1) 
kss (0.5.0) 
minitest (4.7.5) 
psych (2.0.3) 
rake (10.1.0) 
rdoc (4.1.0) 
ruby (0.1.0) 
rubygems-bundler (1.4.3) 
rubygems-update (2.2.2) 
rvm (1.11.3.9) 
sass (3.2.19) 
test-unit (2.1.1.0) 
zurb-foundation (4.3.2) 

Quindi sembra che io abbia tutte le gemme necessarie. poi ho guardato le mie impostazioni PATH via 'echo $ PATH' ed ha ottenuto la seguente:

/home/ec2-user/.rvm/gems/ruby-2.1.1/bin:/home/ec2-user/.rvm/gems/[email protected]/bin:/home/ec2-user/.rvm/rubies/ruby-2.1.1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/bin:/home/ec2-user/.rvm/bin 

ho guardato negli percorsi e vedere che in/usr/bin ho ruby2.0 e in/home/ec2- utente/bin Ho una bussola quindi le installazioni sembrano essere nel PERCORSO del sistema.

Quando eseguo 'ruby2.0' dalla riga di comando ottengo il seguente:

/usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:12:in `<class:Builder>': uninitialized constant Gem::UserInteraction (NameError) 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext/builder.rb:10:in `<top (required)>' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/ext.rb:13:in `<top (required)>' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1431:in `build_extensions' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in find_inactive_by_path' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/user_interaction.rb:8:in `<top (required)>' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/config_file.rb:7:in `<top (required)>' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:55:in `require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:1430:in `build_extensions' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/stub_specification.rb:60:in `build_extensions' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/basic_specification.rb:56:in `contains_requirable_file?' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:925:in `block in find_inactive_by_path' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `each' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/specification.rb:924:in `find_inactive_by_path' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems.rb:185:in `try_activate' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:132:in `rescue in require' 
from /usr/local/share/ruby/site_ruby/2.0/rubygems/core_ext/kernel_require.rb:144:in `require' 
from <internal:abrt_prelude>:2:in `<compiled>' 

Quando eseguo semplicemente 'ruby' non succede mai niente. La 'bussola grunt' sta cercando di trovare 'rubino' e invece ho 'ruby2.0'? Devo creare un collegamento simbolico con ruby ​​-> ruby2.0?

Quando eseguo 'bussola' dalla riga di comando ottengo:

Usage: bussola help [comando]

Description: 
    The Compass Stylesheet Authoring Framework helps you 
    build and maintain your stylesheets and makes it easy 
    for you to use stylesheet libraries provided by others. 

Ecc

Ogni pensiero sarebbe apprezzato

+1

solo per confermare, bussola funziona normalmente quando lo usi al di fuori di Grunt? Sei in grado di guardare/compilare/etc? – cimmanon

+0

Sono stato in grado di eseguire "bussola orologio" e il foglio di stile è stato sovrascritto. Tuttavia, ho ottenuto quanto segue: Errno :: EACCES on line ["146"] di /home/ec2-user/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/tempfile.rb: Autorizzazione negata @ rb_sysopen - /var/www/html/drupal/sites/all/themes/theme_name/assets/css/site_styles.css20140430-4672-pmg71i – spinsheet

risposta

0

grunt compass cerca una gemma di rubino. Nel tuo caso "bussola -v" non dà errori, quindi la parte della bussola funziona correttamente. al di fuori di questo, non dipende da nessun altro componente del rubino.

Ora che la bussola è pronta, grunt compass cerca anche un modulo npm grunt-contrib-compass che troveresti riferimento in un file package.json. Se si fa un npm install questo pacchetto npm viene installato e credo che dovrebbe funzionare grunt compass.

1

Ho fatto qualche ricerca su questo e il seguente funzionato per me ...

Se si dispone di un Windows costruire con Ruby e Compass installati tramite CLI quindi provare ;

  • Pannello di controllo> Sistema> Impostazioni di sistema avanzate
  • Avanzate> Variabili d'ambiente
  • in Ricerca Variabili di sistema per la variabile 'percorso', che dovrebbe avere un valore
  • infine fare clic su Modifica e aggiungere ;C:\Ruby193\bin al molto fine del valore della variabile.

Questo dovrebbe fare il trucco.

Nota che ;C:\Ruby193\bin fa riferimento all'installazione di Ruby> Compass sulla macchina.

Se avete un Mac costruire allora forse una versione simile di correzione potrebbe funzionare per Mac, ma non ho potuto mappare che per voi, un po 'di usare Google potrebbe aiutare ...

Problemi correlati