compiler v1.0.0 + gt-next@6.7.0
概要
@general-translation/compiler v1.0.0 をリリースできることを大変うれしく思います。
gt-next@6.2.0 のリリースで述べたとおり、私たちは i18n ライブラリの未来はビルド時処理にあると考えています。今年の初めには、gt-next 向けに SWC プラグインをリリースし、コンパイル時のハッシュ化や、開発時における文字列翻訳の改善といった最適化を実現しました。これはチームにとってコンパイラプラグインへの非常に濃密な入門となりましたが、その適用範囲は Next.js プロジェクトに限られていました。
今回、汎用的な React コンパイラプラグインをリリースすることで、ビルド時処理へのコミットメントをさらに推し進めています。これにより、gt-next が提供していたあらゆるビルド時最適化を、すべての gt-react ユーザーが利用できるようになります。
セットアップ
設定
| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
compileTimeHash | boolean | true | コンパイル時のハッシュ生成を有効にします |
disableBuildChecks | boolean | false | ライブラリの不正な使用が検出された際にエラーを投げないようにします |
logLevel | string | 'warn' | ログレベルを制御します。選択肢: 'silent' | 'error' | 'warn' | 'info' | 'debug' |
注記:
後方互換性要件を満たすため、gt-next では compileTimeHash を false に設定すると、このプラグイン全体が無効化されます。
gt-react
まずパッケージをインストールする必要があります。
npm install @generaltranslation/compilerVite
// 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',
},
})結論
コンパイラについては今後も多くの改善を計画しており、これから数か月の間に頻繁にアップデートを行う予定です。