戻る

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 ライブラリの未来はビルド時処理にあると考えています。今年の初めには、gt-next 向けに SWC プラグインをリリースし、コンパイル時のハッシュ化や、開発時における文字列翻訳の改善といった最適化を実現しました。これはチームにとってコンパイラプラグインへの非常に濃密な入門となりましたが、その適用範囲は Next.js プロジェクトに限られていました。

今回、汎用的な React コンパイラプラグインをリリースすることで、ビルド時処理へのコミットメントをさらに推し進めています。これにより、gt-next が提供していたあらゆるビルド時最適化を、すべての gt-react ユーザーが利用できるようになります。

セットアップ

設定

オプションデフォルト説明
compileTimeHashbooleantrueコンパイル時のハッシュ生成を有効にします
disableBuildChecksbooleanfalseライブラリの不正な使用が検出された際にエラーを投げないようにします
logLevelstring'warn'ログレベルを制御します。選択肢: 'silent' | 'error' | 'warn' | 'info' | 'debug'

注記: 後方互換性要件を満たすため、gt-next では compileTimeHashfalse に設定すると、このプラグイン全体が無効化されます。

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' コンパイラが使われますが、type フィールドを 'babel' に設定することで、新しい Babel ベースのコンパイラを有効にできます。

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

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

結論

コンパイラについては今後も多くの改善を計画しており、これから数か月の間に頻繁にアップデートを行う予定です。