戻る

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'

: 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',
  },
})

結論

コンパイラについては今後も多くの作業を予定しているため、今後数か月は頻繁にアップデートを行う予定です。