Вопрос или проблема
После миграции скрипта сборки StyleDictionary с версии v3 на v4 все работает корректно, за исключением единственного трансформации “ts/resolveMath”:
Ошибка:
Неизвестная трансформация "ts/resolveMath" найдена на платформе "js":
"ts/resolveMath" не соответствует имени зарегистрированной трансформации.
Часть конфигурации:
const sd = new StyleDictionary({
platforms: {
js: {
transforms: [
"attribute/cti",
"name/pascal",
"color/hex",
"size/rem",
// Это вызывает ошибку, если удалить эту строку
// сборка будет успешной
"ts/resolveMath",
"my/fontWeight/number",
],
buildPath: "dist/",
files: [
{
destination: "tokens.ts",
format: "javascript/object",
},
],
},
},
});
Ответ или решение
Проблема, которую вы описали, связана с тем, что при миграции с версии 3 на версию 4 Style Dictionary произошли изменения в системе трансформаций. В версии 4 некоторые трансформации либо были переименованы, либо их наличие в пакете должно быть обеспечено отдельной зависимостью.
В вашем случае ошибка указывает на то, что трансформация "ts/resolveMath" не зарегистрирована в платформе "js". Это может быть связано с тем, что данная трансформация больше не поддерживается в версиях 4 или требуется установка дополнительного пакета.
Вот возможные шаги для решения вашей проблемы:
-
Проверка документации: Начните с просмотра документации Style Dictionary, чтобы проверить изменения в API и доступные трансформации в версии 4.
-
Установите необходимые зависимости: Если трансформация "ts/resolveMath" действительно была изменена или перенесена в другой пакет, убедитесь, что у вас установлены все необходимые зависимости. Попробуйте запустить команду для установки дополнительных пакетов:
npm install style-dictionary npm install @style-dictionary/ts
-
Проверка регистрации трансформации: Убедитесь, что трансформация "ts/resolveMath" зарегистрирована в вашей конфигурации. Если она была переименована или заменена, вам может потребоваться использовать другую трансформацию, которая выполняет аналогичную задачу.
-
Обновление конфигурации: Если трансформация "ts/resolveMath" больше не поддерживается, вам нужно удалить её из конфигурации
transforms
:transforms: [ "attribute/cti", "name/pascal", "color/hex", "size/rem", // Удалите или замените эту строку // "ts/resolveMath", "my/fontWeight/number", ],
-
Проверка альтернатив: Если вам нужна функциональность, аналогичная "ts/resolveMath", проверьте, предоставляет ли новая версия Style Dictionary альтернативные трансформации, которые предназначены для решения ваших задач.
- Тестирование: После внесения изменений в конфигурацию, не забудьте перезапустить сборку и проверить, устраняется ли ошибка.
Следуя этим шагам, вы сможете устранить проблему с трансформацией "ts/resolveMath" и завершить миграцию на версию 4 Style Dictionary. Если проблема сохраняется, рекомендуется обратиться за поддержкой на официальный GitHub репозиторий Style Dictionary, где вы сможете получить более подробные рекомендации от сообщества и разработчиков.