Задать вопрос
  • SASS компилятор для Sublime Text (Windows)?

    @Boomerml
    Установи Node.js (если ещё не установлен) с официального сайта.
    Как писали выше если хочешь чтобы всё работало под ctrl+s установи ещё SublimeOnSaveBuild
    Установи sass глобально:
    npm install -g sass
    После установки проверь:
    sass --version
    Установи minify глобально:
    npm install -g minify
    После установки проверь:
    minify --version

    Настройка Sublime Text: Открой Sublime Text. Перейди в Tools → Build System → New Build System. Вставь следующий код:
    {
        "cmd": [
            "sass", "--no-source-map", "$file", "${file_path}/${file_base_name}.css",
            "&&", "minify", "${file_path}/${file_base_name}.css", ">", "${file_path}/${file_base_name}.min.css"
        ],
        "selector": "source.scss",
        "windows": {
            "shell": "true"
        }
    }


    Если что то не работает, возможно установлен ruby, который нужно удалить со старыми версия sass(могут находиться C:\Users\ПОЛЬЗОВАТЕЛЬ\AppData\Local\Microsoft\WindowsApps\ - удалить файлы sass т.е. sass.bat и пр...) в помощь
    PowerShell: where sass
    Если minify даёт ошибки, можешь использовать альтернативу — cleancss: и настроить под него
    npm install -g clean-css-cli

    Если необходимо чтобы файлы с расширениями .css и .min.css так же отправлялись на сервер с использованием SFTP то у меня есть некая наработка, сохраняем файл с названием old-sftp-auto-upload-scss.py или через консоль Build: New Build System, или Вы можете использовать через SFTP: Monitor File

    import sublime
    import sublime_plugin
    import os
    import re
    import time
    
    class OldSftpAutoUploadScss(sublime_plugin.EventListener):
    	def is_remote_file(self, file_name):
    		"""Проверяет, является ли файл удалённым (с наличием конфигурации SFTP)."""
    		while file_name != os.path.abspath(os.sep):
    			file_name = os.path.dirname(file_name)
    			sftp_config = file_name + '/sftp-config.json'
    			if os.path.exists(sftp_config):
    				return True
    		return False
    
    	def wait_for_file(self, file_path, timeout=5):
    		"""Ожидает появления файла в течение заданного времени (в секундах)."""
    		elapsed_time = 0
    		while elapsed_time < timeout:
    			if os.path.exists(file_path):
    				return True
    			time.sleep(0.5)  # Пауза в 0.5 секунды перед проверкой снова
    			elapsed_time += 0.5
    		return False
    
    	def on_post_save_async(self, view):
    		"""После сохранения файла компилируем и загружаем файлы на сервер."""
    		file_name = view.file_name()
    		window = view.window()
    
    		# Проверяем, если это .scss файл
    		if self.is_remote_file(file_name) and file_name.endswith('.scss'):
    			# Путь к компилированному файлу .css
    			css_file = file_name.replace('.scss', '.css')
    			# Путь к скомпилированному и минифицированному файлу .min.css
    			min_css_file = file_name.replace('.scss', '.min.css')
    
    			# Ожидаем появления .css и .min.css файлов
    			if self.wait_for_file(css_file) and self.wait_for_file(min_css_file):
    				# Загружаем .css файл, если он существует
    				if os.path.exists(css_file):
    					new_view = window.open_file(css_file)
    					window.run_command("sftp_upload_file")
    					new_view.close()
    
    				# Загружаем .min.css файл, если он существует
    				if os.path.exists(min_css_file):
    					min_view = window.open_file(min_css_file)
    					window.run_command("sftp_upload_file")
    					min_view.close()
    Ответ написан
    Комментировать
  • Почему появляется ошибка при изменении полей в процессе создания заказа Bitrix?

    @Boomerml
    Ругается на:
    if (!empty($order_email)){
               $emailPropValue->setValue($order_email);
               }


    Вы достаёте:
    $emailPropValue = $propertyCollection->getUserEmail();


    У Вас видимо нету свойства заказа с галочкой: Использовать как E-Mail: Значение свойства будет использовано как E-Mail при регистрации нового пользователя
    Аль сие есть, то может быть не активна, Вам нужно сделать свойство активным и служебным, тогда он не появится в оформление заказа, но значение с данного скрипта будет записываться в заказ.
    Ответ написан
    1 комментарий
  • Как настроить browser-sync для удаленного сервера?

    @Boomerml
    Может моё решение кому нибудь пригодиться, оставлю его здесь.

    Исходя из комментария https://stackoverflow.com/a/35822444/8400413, настроил следующим образом.

    Gulp
    browserSync.init({
    		socket: {
    			domain: "localhost:3000"
    		}
    	});

    Перед < /body> на удалённом сервере
    <script id="__bs_script__">//<![CDATA[
    			document.write("<script async src='http://localhost:3000/browser-sync/browser-sync-client.js?v=2.18.13'><\/script>");//.replace("HOST", location.hostname));
    		//]]></script>
    Ответ написан
    Комментировать