为什么在这个 npm 启动脚本中调用了两次 tsc?

Why is tsc called twice in this npm start script?

package.json 示例 at this link 包括以下 start 命令:

"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",  

上面的命令明确地做什么?

我认为 "concurrently \"npm run tsc:w\" \"npm run lite\" " 意味着同时启动 tsclite-server,并在 tsc 上放置一个 watch 以便更改会立即重新加载到 lite-server。这个对吗?而且,为什么要调用 tsc 两次?整行代码(包括其所有组成部分放在一起)的明确解释是什么?

您可以将命令分解为多个部分(删除引号):

  1. tsc
  2. concurrently
  3. npm run tsc:w
  4. npm run lite

第一部分调用 TypeScript 编译器 CLI 并编译您的 TypeScript 文件。

接下来,有一个&&,意思是“cmd1 then/and cmd2”。下一节:

concurrently npm run tsc:w npm run lite

使用concurrently package CLI到运行给定的命令,即npm run tsc:wnpm run lite。部分:

npm run tsc:w

这 运行 是您 package.json 中的脚本:

"tsc:w": "tsc -w"

然后npm run lite 运行s package.json中对应的脚本:

"lite": "lite-server"

所以您在技术上调用了 tsc 两次,但 tsc:w 开始监视您的 TypeScript 文件。 使用 -w 不会进行初始构建,因此需要第一个 tsc 来初始构建您的文件 ,然后 -w 监视您的文件并重建随后更改的文件。 concurrent 脚本然后 运行 监视脚本和服务器。