`tsc --build --clean` 与 `rm -rf *.js` 有什么区别?

its*_*ghz 10 build resource-cleanup typescript tsc

tsc我对与参数一起使用的命令有一个简单的问题--build --clean,我理解该命令用于清理/擦除.js转换器(tsc)之前生成的文件。

这个命令的特殊性或者意义是什么?如果我需要删除所有文件,我可以通过目录或在目录中.js轻松完成。rm -rf *.jsdel *.js

有人可以告诉我缺失的部分吗?

ruo*_*ola 17

不同之处在于,它rm会愉快地删除任何文件,即使它们不是通过转译 TypeScript 生成的。

笔记!

tsc --build --clean.js当存在.ts可以生成该文件的相应文件时才会删除该文件。这意味着,如果您重命名.ts文件、删除.ts文件或创建新.ts文件,然后运行,以前具有相应文件的tsc --build --clean旧文件将不再被删除.js.ts

如果您确实想在构建之前进行清理,尤其是当文件集.ts发生更改时,您应该以不同的方式删除输出文件夹。例如rm -rf dist/在 Unix shell 或rm -r -fo dist/Windows PowerShell 中。或者,假设您使用 TypeScript 时可能使用 Node.js,请使用跨平台包(例如rimraf删除输出文件夹)。

  • 我刚刚做了一个快速测试。看起来它删除了与 .ts 文件匹配的 .js 文件。我创建了一个 dummy.ts 并运行“tsc”来获取 dummy.js,然后在运行“tsc --build --clean”之前删除了原始的“dummy.tsc”,只是为了找出“dummy”的事实.js` 文件保持原样:) 所以这一定是它吗?感谢您提供了一个可以玩的好场景!还有其他差异吗?或者仅此而已? (2认同)

Ran*_*son 15

区别在于--clean一般来说没有用。如果您曾经重命名、移动或删除了源文件,clean 将不会清理转译的输出。