ExtJs 4.2 компилирует тему с использованием компаса

Согласно документации Sencha, создание и компиляция новых тем должны выполняться с помощью Sencha CMD.

Я хотел бы создать новую тему (которая будет унаследована от существующей) и иметь возможность скомпилировать ее с помощью Compass без Sencha CMD.

Любая идея, как это сделать?


person CD..    schedule 08.04.2013    source источник


Ответы (2)


Если вы хотите создать новую тему с нуля, это, вероятно, будет немного сложно, и я бы порекомендовал сначала попробовать расширить существующую тему. По сути, тема состоит из двух больших частей: шаблонов CSS и переопределений JavaScript; CSS, в свою очередь, разделен на код SASS, примеси и переменные.

Существует руководство по созданию тем, в котором обсуждается создание тем для версии 4.2. ; для примеров наследования вы можете взглянуть на существующие темы: например, серая тема, которая расширяет классическую тему, которая, в свою очередь, наследуется от нейтральной темы, у которой базовая тема является родителем. Neptune также может дать вам множество примеров переопределения JavaScript.

person Alex Tokarev    schedule 08.04.2013
comment
Спасибо за подробный ответ, но это никак не отвечает на мой вопрос. - person CD..; 09.04.2013
comment
Извините, я пропустил без части Sencha Cmd. Есть ли какая-то особая причина избегать Cmd? - person Alex Tokarev; 09.04.2013
comment
1. Я никак не могу установить его на машину для сборки. 2. это медленно. 3. compass watch. - person CD..; 09.04.2013
comment
В чем сложность его установки? Может быть, мы сможем решить проблему. - person Alex Tokarev; 10.04.2013
comment
@AlexTokarev, есть ли способ создать тему сенчи без SenchaCmd? Что-то вроде легкого и быстрого компоновщика SASS на основе grunt/gulp — чтобы SASS перестраивался на наблюдателе и тратил на перестроение 1-5 секунд вместо 20-40 секунд, как у нас с SenchaCmd. - person webdevbyjoss; 21.08.2015
comment
@webdevbyjoss Попробуйте Sencha Cmd 6.0 с новым компилятором SASS под названием Fashion — он основан на JavaScript и очень быстр. - person Alex Tokarev; 21.08.2015
comment
спасибо @AlexTokarev. Другим вариантом может быть использование встроенной версии компаса напрямую. Например мы используем ExtJS 4.2.x и старую Sencha Cmd 4.0.4.x, поэтому для создания CSS вы можете просто вызвать: компас/драгоценные камни рубин $SENCHA_CMD_3_0_0/extensions/sencha-compass/gems/bin/compass compile . --config ./config.rb --css-dir ./resources --sass-dir . --force --trace Создает тему примерно за 2-3 секунды, что довольно быстро и достаточно для любого пользовательского наблюдателя на основе grunt/gulp. - person webdevbyjoss; 22.08.2015

У нас были темы в нашем приложении для последнего Ext 4, выпущенного без командного инструмента sencha. Имейте в виду, что это код версии 4.1, и он мог измениться с версии 4.2. Вам необходимо установить ruby/compass и создать конфигурационный файл для компаса, который сообщит ему о загрузке конкретных переменных ext, и вы сможете установить переменные конфигурации компаса. http://compass-style.org/help/tutorials/configuration-reference/

Вот пример файла конфигурации с именем config.rb (я думаю, что он должен называться config.rb, но не цитируйте меня). Он взят из extDir/resources/sass

# $ext_path: This should be the path of where the ExtJS SDK is installed
# Generally this will be in a lib/extjs folder in your applications root
# <root>/lib/extjs
$ext_path = "../extjs/4.1"

# sass_path: the directory your Sass files are in. THIS file should also be in the Sass folder
sass_path = File.dirname(__FILE__)

# css_path: the directory you want your CSS files to be.
# Generally this is a folder in the parent directory of your Sass files
css_path = File.join(sass_path, "css")

# We need to load in the Ext4 themes folder, which includes all it's default styling, images, variables and mixins
load File.join(File.dirname(__FILE__), $ext_path, 'resources', 'themes')

#Compass config variable
relative_assets = true

Вот структура каталога

  • sass/config.rb
  • sass/redTheme.sass
  • sass/css

RedTheme.sass может выглядеть примерно так:

$base-color: red;

@import 'compass';
@import 'ext4/default/all';

После компиляции компаса в каталоге sass будет создан файл redTheme.css.

  • sass/css/redTheme.css
person pllee    schedule 08.04.2013
comment
@CD.. тебе когда-нибудь удавалось найти ответ на свой вопрос? Я только сейчас ищу решение, которое позволит мне использовать часы с компасом для разработки тем Sencha 4.2. Запуск Sencha Cmd кажется очень тяжелым и медленным. - person David; 05.11.2013
comment
@David: К сожалению, я не нашел решения. - person CD..; 05.11.2013
comment
Какой позор. Неудивительно, что все темы, которые вы можете скачать, настолько плохи. Тематика в лучшем случае разочаровывает. - person David; 06.11.2013