vite: (!) outDir xxx is not inside project root and will not be emptied.Use --emptyOutDir to override.
viteコマンドうったら
>vite build
なんか出てきた
vite: (!) outDir xxx is not inside project root and will not be emptied.Use --emptyOutDir to override.
原因
viteは、ourdirの中身を一度空にしてからビルドするという標準仕様があるが、例外として、outdirをproject root の外にあるときは警告を行っている
outDirをproject rootの外に設定している例
export default defineConfig({
root: "src",
build: {
outDir: "../dist",
},
});
解決方法
build.emptyOutDir = true に設定すれば警告を抑制できる
export default defineConfig({
root: "src",
build: {
outDir: "../dist",
emptyOutDir: true,
},
});
所感
tscだと出力先の古いファイルを削除したりしないので、その点バンドルツールというものはすごいんだなあと思った
# tscの場合
## ファイル名変更前
```
└── 📁dist
└── oldname.js
└── 📁src
└── oldname.ts
```
## ファイル変更後
rename src/oldname.ts => src/newname.ts
dist/oldname.jsは残ったまま
```
└── 📁dist
└── newname.js
└── oldname.js
└── 📁src
└── newname.ts
```