Разработка на Google Apps Script (GAS) в стандартном редакторе Google может быть ограничена по сравнению с современными IDE. Интеграция с Visual Studio Code (VS Code) открывает множество преимуществ, значительно повышая эффективность и удобство разработки.
Преимущества использования VS Code для разработки Google Apps Script
- Расширенные возможности редактирования: VS Code предоставляет мощные инструменты для редактирования кода, включая подсветку синтаксиса, автодополнение, рефакторинг и навигацию по коду.
- Интеграция с системами контроля версий: Удобная работа с Git, позволяющая отслеживать изменения, сотрудничать с другими разработчиками и легко откатываться к предыдущим версиям.
- Отладка: Использование
console.log
и инструментов разработчика браузера для отладки становится более эффективным. - Расширяемость: VS Code поддерживает множество расширений, которые могут улучшить процесс разработки, например, линтеры, форматеры и инструменты для работы с базами данных.
- Автоматизация: Возможность автоматизации рутинных задач, таких как загрузка и выгрузка кода, тестирование и развертывание.
Обзор Google Apps Script и Visual Studio Code
Google Apps Script — это облачный язык сценариев, который позволяет автоматизировать задачи в Google Workspace (Sheets, Docs, Slides, Gmail и др.). Visual Studio Code — это бесплатный, кроссплатформенный редактор кода с открытым исходным кодом, разработанный Microsoft. VS Code является мощным и гибким инструментом, который может быть настроен для работы с различными языками программирования, включая Google Apps Script.
Настройка Visual Studio Code для работы с Google Apps Script
Для начала работы необходимо установить и настроить необходимые инструменты.
Установка и настройка Node.js и npm
Clasp, CLI для Google Apps Script, требует Node.js и npm (Node Package Manager). Скачайте и установите Node.js с официального сайта: https://nodejs.org/. Npm обычно устанавливается вместе с Node.js.
Проверьте установку, выполнив в терминале:
node -v
npm -v
Установка clasp: CLI для Google Apps Script
Clasp — это инструмент командной строки, который позволяет управлять проектами Google Apps Script из VS Code. Установите clasp глобально с помощью npm:
npm install -g @google/clasp
Авторизация clasp для доступа к Google Apps Script
Чтобы clasp мог работать с вашими проектами Google Apps Script, необходимо авторизовать его. Выполните команду clasp login
в терминале. Откроется страница авторизации в браузере, где нужно предоставить clasp доступ к вашему аккаунту Google.
clasp login
Создание и настройка проекта Google Apps Script в VS Code
Существует два способа начать работу: клонировать существующий проект или создать новый.
Клонирование существующего проекта Apps Script в VS Code с помощью clasp
-
Перейдите в Google Apps Script editor вашего проекта.
-
Скопируйте ID проекта (File -> Project properties).
-
В VS Code создайте новую папку для проекта.
-
Откройте терминал в этой папке и выполните команду:
clasp clone <PROJECT_ID>
Замените
<PROJECT_ID>
на ID вашего проекта.
Создание нового проекта Apps Script и его инициализация в VS Code
-
Создайте новую папку для проекта в VS Code.
-
Откройте терминал в этой папке и выполните команду:
clasp create --type standalone
Выберите тип проекта (standalone, sheet, document, и т.д.).
Настройка .clasp.json
: идентификатор проекта и типы файлов
Файл .clasp.json
содержит информацию о проекте, включая ID проекта и типы файлов. Убедитесь, что ID проекта указан правильно. Также в этом файле можно указать, какие типы файлов будут загружаться и выгружаться (например, только .gs
файлы).
Пример .clasp.json
:
{
"scriptId": "1234567890abcdefghijklmnopqrstuvwxyz",
"rootDir": "./src",
"fileExtension": ".gs"
}
Работа с кодом: Разработка, отладка и развертывание
Теперь, когда все настроено, можно приступать к разработке.
Редактирование кода в VS Code с использованием подсветки синтаксиса и автодополнения
VS Code автоматически определяет тип файлов .gs
и применяет подсветку синтаксиса JavaScript. Установите расширения для VS Code, чтобы улучшить автодополнение и получить подсказки по API Google Apps Script.
Загрузка и выгрузка изменений в Google Apps Script с помощью clasp
-
Загрузка изменений (push): Отправляет локальные изменения в Google Apps Script.
clasp push
-
Выгрузка изменений (pull): Загружает последние изменения из Google Apps Script в локальный проект.
clasp pull
Отладка кода: использование console.log
и инструментов разработчика браузера
Используйте console.log
для вывода информации в журнал выполнения Google Apps Script. Для просмотра журнала используйте инструменты разработчика браузера (View -> Developer -> View Logs) в редакторе Google Apps Script, или используйте clasp logs
в терминале.
Пример кода с логированием:
/**
* Функция для получения данных из Google Sheets.
* @param {string} spreadsheetId ID таблицы Google Sheets.
* @param {string} sheetName Название листа.
* @returns {Array<Array<any>>} Двумерный массив данных из таблицы.
*/
function getDataFromSheet(spreadsheetId: string, sheetName: string): Array<Array<any>> {
const ss = SpreadsheetApp.openById(spreadsheetId);
const sheet = ss.getSheetByName(sheetName);
if (!sheet) {
console.error(`Sheet with name '${sheetName}' not found.`);
return [];
}
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
console.log(`Retrieved ${data.length} rows from sheet '${sheetName}'.`);
return data;
}
Развертывание (Deploy) версий проекта из VS Code
Clasp позволяет создавать и развертывать версии проекта из VS Code. Сначала создайте новую версию:
clasp version "Описание версии"
Затем разверните версию:
clasp deploy -V <VERSION_NUMBER> -d "Описание развертывания"
Замените <VERSION_NUMBER>
на номер версии.
Продвинутые техники и советы
Использование Git для контроля версий
Инициализируйте Git репозиторий в папке проекта:
git init
Создайте файл .gitignore
, чтобы исключить из репозитория ненужные файлы, такие как .clasp.json
(если не хотите хранить ID проекта в репозитории).
Настройка линтеров и форматеров кода (ESLint, Prettier)
Используйте ESLint и Prettier для автоматической проверки и форматирования кода. Установите необходимые пакеты:
npm install --save-dev eslint prettier eslint-plugin-googleappsscript
Настройте ESLint и Prettier в соответствии с вашими предпочтениями.
Автоматизация рутинных задач с помощью VS Code tasks
VS Code tasks позволяют автоматизировать рутинные задачи, такие как загрузка и выгрузка кода, запуск тестов и т.д. Создайте файл .vscode/tasks.json
и определите в нем необходимые задачи.
Пример tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"label": "Clasp Push",
"type": "shell",
"command": "clasp push",
"group": "build",
"problemMatcher": []
}
]
}
Теперь можно запустить задачу Clasp Push
из VS Code (Tasks -> Run Task).