概要
NestJSでTypeScriptのエイリアスを使用する方法を記載する。
NestJS CLI(6.9.x現在)ではTypeScriptのエイリアスを使用するとコンパイルエラーになります。
今回はNestJSのWebpackのコンパイル機能をカスタムしてTypeScriptのエイリアスを実現します。
TypeScriptのエイリアスについては以下の記事に概要を記載しています。 kakkoyakakko2.hatenablog.com
対応方法
- NestJS CLI の
--webpack
オプションを指定してwebpack.config.js
の設定を使用するようにする。 webpack.config.js
にtsconfig-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 }; }