nestjsのimport from '@/'
'import { GlobalEventService } from '@/core/GlobalEventService.js'のように@/でアクセスできるのはなんの仕様?
https://gyazo.com/3c750ca36e1f0abad0f9a3335a1e9d25
Vue.jsというフレームワークの仕様らしい。本当?
裏どりする
webpackのものでwebpack.base.conf.jsに書いてある、という説明 しかしそんなファイルはない
昔使われていた形跡はある
webpackにあるなら他のものが模倣している可能性があるのでaliasでnestjsを調べると、それっぽいものがある tsconfig.jsonを見るとそれっぽいものが書いてあった
"@/*": ["./src/*"]
以下のファイルでもエイリアスを設定しているのではないですか?coolwind0202.icon
Webpackからswcにビルドツールを変更したのではないかと思います 13.7.1からswcになったとのこと基素.icon
build コマンドを実行すると swc でビルドします
このとき、 .swcrc のエイリアス設定を使ってビルドします
build:tsc コマンドを実行すると tsc でビルドします
このときは、tsconfig.json のエイリアス設定を使います
tsc-alias スクリプトを実行してパスを置き換えます
こういうことかな基素.icon
本番環境用にtscでビルドした際にpath aliasだとエラーになってしまったため、tsc-aliasを使ってpath aliasを相対パス形式に変換するようにした。
tsconfig.jsonでエイリアスを設定すると、エディタにもそれが認識されます
tsconfig.jsonはビルドよりもこのためだけに使っているのかも基素.icon
なるほど。感謝基素.icon
swc(build)とtsc(build:tsc)はどう使い分けているんだろう?基素.icon
暫定結論:tscはかつて使っていたが今は利用されていない
ビルドのコマンドを眺めるとわかるかな
swcは型チェックをしないらしいから、このdenoみたいな方式なのかな?
@petamoriken: @suin 型チェックには tsc を使っており、実行時には JavaScript へ swc で変換し、V8 で実行しています。 特に TypeScript をパフォーマンスのために活用しているようなことはありません。
..と思ったけど多分違う。tscで型チェックをしているけどbuild:tscは使ってなさそう基素.icon
これはCIだけど、productionへのビルド時は型チェックしてないのかな?
ここでこれがよばれる
もともとtscでbuildしていたのをwindowsで動かないという理由でswcにしているみたいだった
Windowsかつtscでビルドできていない人がいるみたいだからswcにしようという議論
tscはもう使ってない説