Назад

compiler v1.0.0 + gt-next@6.7.0

Ernest McCarter avatarErnest McCarter
@general-translation/compilerv1.0.0compilertranslationi18n

Обзор

Мы с большим удовольствием объявляем о выходе @general-translation/compiler v1.0.0.

Как мы отмечали в релизе gt-next@6.2.0, мы считаем, что будущее библиотек i18n — за обработкой на этапе сборки. В начале этого года мы выпустили плагин SWC для gt-next, который добавил оптимизации вроде хеширования на этапе компиляции и более удобной работы с переводами строк во время разработки. Хотя для нашей команды это стало отличным (пусть и довольно интенсивным) знакомством с плагинами компилятора, область его применения была ограничена только проектами на Next.js.

Мы продолжаем выполнять своё обещание развивать обработку на этапе сборки и выпускаем этот универсальный плагин компилятора для React. Это означает, что все оптимизации на этапе сборки из gt-next теперь доступны каждому пользователю gt-react!

Настройка

Конфигурация

OptionTypeDefaultDescription
compileTimeHashbooleantrueВключает хеширование на этапе компиляции
disableBuildChecksbooleanfalseОтключает выброс ошибок при обнаружении некорректного использования библиотеки
logLevelstring'warn'Определяет уровень логирования. Варианты: 'silent' | 'error' | 'warn' | 'info' | 'debug'

Примечание: В gt-next для соблюдения требований обратной совместимости при установке compileTimeHash в false весь плагин будет отключён.

gt-react

Сначала установите пакет:

npm install @generaltranslation/compiler

Vite

// vite.config.js
import { defineConfig } from 'vite'
import { vite as gtCompiler } from '@generaltranslation/compiler'

export default defineConfig({
  plugins: [gtCompiler()],
})

Webpack

// webpack.config.js
const { webpack: gtCompiler } = require('@generaltranslation/compiler')

module.exports = {
  plugins: [gtCompiler()],
}

Rollup

// rollup.config.js
import { rollup as gtCompiler } from '@generaltranslation/compiler'

export default {
  plugins: [gtCompiler()],
}

gt-next

Вам не нужно устанавливать дополнительные пакеты.

В gt-next мы отказываемся от experimentalSwcPluginOptions в пользу нового поля experimentalCompilerOptions. Ключевое отличие в том, что теперь нужно явно указать, какой тип компилятора использовать: 'swc' или 'babel'. По умолчанию используется компилятор 'swc', но вы можете включить новый компилятор на базе Babel, установив для поля type значение 'babel'.

// next.config.js
import { withGTConfig } from 'gt-next'

export default withGTConfig(nextConfig, {
  experimentalCompilerOptions: {
    type: 'babel',
  },
})

Заключение

У нас запланировано ещё много работы над компилятором, так что в ближайшие месяцы ожидайте частых обновлений.