概要
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
};
}