2015-03-13 2 views
2

Я использую Syntastic VIM плагин вИсправление ошибки начальной загрузки SyntasticCheck. Вим Syntastic плагин

Все мой самозагрузки материал настроен и работает это только я получаю эту ошибку в приложение/активов/стилей/application.css.scss

|| File to import not found or unreadable: bootstrap-sprockets. Load path: ... on line 17 

Строка 17 - это «загрузочные звездочки» @import;

Мои Gemfile имеет

gem 'rails', '4.2.0' 
gem 'sass-rails', '~> 5.0' 
gem 'bootstrap-sass', '~> 3.3.3' 

мое приложение/активы/таблицы стилей/application.css.scss только имеет

/* 
* This is a manifest file that'll be compiled into application.css, which will include all the files 
* listed below. 
* 
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, 
* or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path. 
* 
* You're free to add application-wide styles to this file and they'll appear at the bottom of the 
* compiled file so the styles you add here take precedence over styles defined in any styles 
* defined in the other CSS/SCSS files in this directory. It is generally better to create a new 
* file per style scope. 
* 
*= require_tree . 
*= require_self 
*/ 

@import "bootstrap-sprockets"; 
@import "bootstrap"; 

Почему Syntastic до сих пор дает мне эту ошибку?

+0

Похоже, вы не перезапускаете приложение Rails. –

+0

@maxd Я перезапустил его. Эта ошибка отображается в VIM. – CodeCrack

+0

Это, вероятно, не имеет отношения к Vim. Попробуйте проверку синтаксиса непосредственно в ваших файлах, чтобы узнать, согласуются ли результаты с тем, что вы получаете в Vim. – romainl

ответ

10

Почему Syntastic все еще дает мне эту ошибку?

Syntastic дает вам эту ошибку, поскольку она не знает о дополнительных путях импорта, настроенных на sprockets. Но, к счастью, вы можете настроить это с помощью переменной g:syntastic_<filetype>_<checker>_args. Поэтому в вашем случае вы, вероятно, должны установить что-то вроде

let g:syntastic_scss_sass_args="--load-path path/to/bootstrap-gem/vendor/assets" 

или что-то симулятивное.

Extra сахара: вы можете использовать https://github.com/embear/vim-localvimrc для автомагически установить эту переменную только для этого проекта

-1

@jan ответ самый правильный ответ, и это правильный путь!

Однако, возможно, было бы немного громоздко создать локальный .vimrc для текущего проекта, а затем перейти в иерархию файлов драгоценных камней и найти его активы.

Лично я считаю, что это слишком много усилий, чтобы решить пустую путаницу загрузки с помощью scss-проверки Syntastic и, кстати, не имеет никакого эффекта при фактической загрузке Bootstrap.

Я думаю, что большинство из нас согласится с тем, что scss имеет простые правила и структуру, и его очень легко отлаживать и поддерживать, поэтому мне просто легче отключить scss-проверку Syntastics.

let g:syntastic_scss_checkers=[''] 
1

Еще один вариант - попросить Syntastic игнорировать это сообщение об ошибке. В ~/.vimrc:

let g:syntastic_scss_sass_quiet_messages = { 
    \ "regex": 'File to import not found or unreadable', } 

См.: Help syntact-checker-options для получения более подробной информации.

0

Если вы используете RVM вы можете решить эту проблему, выполнив следующие действия

rvm gemdir 

Это даст вам каталог текущей версии рубинового ваше приложение использует.

Чем после этого вам нужно найти вашу самозагрузку камня версии

Скобки {} не нужны.

cd {copy and paste rvm gemdir here}/gems/ 

Перейдите в свой файл Gemfile или Gemfile.lock и посмотрите, какую версию загрузочного лотка вы используете.

cd {copy and paste rvm gemdir here}/gems/{bootstrap version} 

Теперь, в зависимости от версии вы будете иметь поставщика/активы или через /активы каталог

В моем случае я только имел /активы

Так в моем ситуация я использовал это в своих .vimrc

let g:syntastic_scss_sass_args="--load-path ~/.rvm/gems/ruby-2.3.0/gems/bootstrap-sass-3.3.6/assets" 

Это устранило ошибку. Не забудьте перезагрузить .vimrc