開発覚書はてな版

個人的な開発関連の備忘録

【NestJS】TypeScriptのエイリアスを使用する

概要

NestJSでTypeScriptのエイリアスを使用する方法を記載する。
NestJS CLI(6.9.x現在)ではTypeScriptのエイリアスを使用するとコンパイルエラーになります。
今回はNestJSのWebpackのコンパイル機能をカスタムしてTypeScriptのエイリアスを実現します。

TypeScriptのエイリアスについては以下の記事に概要を記載しています。 kakkoyakakko2.hatenablog.com

対応方法

  • NestJS CLI--webpack オプションを指定して webpack.config.js の設定を使用するようにする。
  • webpack.config.jstsconfig-paths-webpack-plugin を使用してTypeScriptのエイリアスを通す。

動作環境

  • @nestjs/core - 6.7.x
  • @nestjs/cli -6.9.x
  • tsconfig-paths-webpack-plugin - 3.2.x

設定

webpack.config.js

const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');

module.exports = function(options) {
  return {
    ...options,
    resolve: {
      ...options.resolve,
      plugins: [new TsconfigPathsPlugin()]
    }
  };
}

package.config.js

  "scripts": {
    "start": "nest start --webpack",
  }

追記:2019/10/15

引数の options を展開するだけでエイリアスの解決が出来ました。 --webpack オプション使用時は tsconfig-paths-webpack-plugin が設定されているようです。

webpack.config.js

module.exports = function(options) {
  return {
    ...options
  };
}