【问题标题】:Where does compiled typescript files reside in an Angular 2 project?编译后的打字稿文件位于 Angular 2 项目中的什么位置?
【发布时间】:2025-11-26 10:30:01
【问题描述】:

我刚开始学习 Angular 2。我正在学习的教程中提到所有编译后的文件都进入了dist 文件夹。他所说的编译文件是指被转译为 javascript 的打字稿文件。

但是当我使用 Angular 2 CLI 创建我的项目时,我没有得到任何 dist 文件夹。附件是我的项目结构的快照。 注意:我在稍后阶段创建的文件夹很少,并且不是默认 angular2 结构的一部分。

另外,当我查看 tsconfig.json 文件时,它有以下代码。

{
    "compilerOptions": {
    "baseUrl": "",
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es6", "dom"],
    "mapRoot": "./",
    "module": "es6",
    "moduleResolution": "node",
    "outDir": "../dist/out-tsc",
    "sourceMap": true,
    "target": "es5",
    "typeRoots": [
      "../node_modules/@types"
    ]
  }
}

由于对象的outDir 属性中提到了dist 目录,那么我的项目必须在某处有一个dist 文件夹。我在这里错过了什么吗?

【问题讨论】:

  • 如果您使用cli,您将不会有单独的编译文件
  • @Aravind 那么这里到底发生了什么?能否提供更多细节?

标签: javascript angular typescript


【解决方案1】:

当您运行编译器时,它将创建一个名为 dist 的文件夹。如果您使用过Angular CLI,请尝试运行ng build 命令。执行此命令后,编译器会将ts 编译为js,制作捆绑包并将它们放入dist 文件夹中。

【讨论】:

  • 项目处于开发阶段是否应该使用ng build?如果使用 ng build 命令将 ts 文件编译为 js,那么我的项目目前的工作情况如何?我的意思是页面正在渲染,那么它一定是 javascript 代码,对吧?
  • @KartikChauhan 当您在开发模式下运行ng serve 时,如果您没有构建项目,应用程序将在内存中编译和服务。因此,对于生产环境,您需要构建项目并将dist 文件夹内容复制到服务器,然后它将提供已编译的代码。