0.初めに
- 普段、
tsc
を使ってTS
プロジェクトをJS
に変換しますが、バンドルツールを使わないと、変換した後のサイズが大きくなってしまうことが多いです。この記事はRollup.js
を使って、バンドルと圧縮を実装します - この記事は
TS
による開発したNode.js
プロジェクトに基づいて展開します
1.インストール
まずは、Rollup.js
をインストール
公式サイト
yarn add -D rollup
Rollup.js
のプラグインをインストール
yarn add -D @rollup/plugin-commonjs rollup-plugin-terser rollup-plugin-typescript2
プラグイン説明
-
@rollup/plugin-commonjs
:プロジェクトが使用する依存関係をrollup
に伝えます -
rollup-plugin-terser
:コードを圧縮します -
rollup-plugin-typescript2
:rollup
にTS
コードを理解させます
2.設定ファイル
rollup.config.js
ファイルを新規作成、ルールを書く
// インポート
const { terser } = require('rollup-plugin-terser')
const commonjs = require('@rollup/plugin-commonjs')
const typescript = require('rollup-plugin-typescript2')
// tsconfig.jsonのマージオプション
// 一般に、デフォルトとしてプロジェクトのtsconfig.jsonを使う
// 個別の項目を修正したかったら、ここでマージできます
const override = { compilerOptions: { module: 'ESNext' } }
module.exports = {
// プロジェクトの入口
input: 'src/app.ts',
// バンドル、出口の設定
output: {
file: 'dist/app.min.js',
format: 'cjs',
sourcemap: true,
exports: 'default',
},
// プラグイン
// ご注意!ここでプラグインは順番がある!
// 最初にtsをjsにコンパイルし、次に依存関係を探し、最後に圧縮する
plugins: [typescript({ tsconfig: './tsconfig.json', tsconfigOverride: override }), commonjs(), terser()],
}
3.package.json編集
package.json
ファイルで追加
-c
の意味は:設定ファイルを使て実行
"rollup:build": "rollup -c",
4.使用
rollup:build
を実行します
yarn rollup:build
5.検証
Rollup.js
使用前、サイズは106KB
Rollup.js
使用後、サイズは12.2KB
、ボリュームを大幅に削減しました