Angular CLI和TypeScript outDir

我刚刚在这里通过Angular CLI英雄教程。 我已经遵循了所有的教程,并完成了HTTP教程。

所有关于Angular 4和TypeScript的学习都很棒,但是在整个课程中,有一件事情让我感到震惊,那就是JavaScript被编译到src文件夹中。 如果有一些关于打包部署的“下一步”教程会很好,但这可能超出了Angular的范围。

我想改变这一点,但不是100%确定我需要做的一切。

理想情况下,将编译为单独的文件夹,并包含运行该网站所需的所有文件。

我查看了tsconfig.json文件并添加了outDir设置:

 { "compilerOptions": { "target": "es5", "outDir": "../dist/app", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "lib": [ "es2015", "dom" ], "noImplicitAny": true, "suppressImplicitAnyIndexErrors": true } } 

当我运行npm start代码似乎构build到dist文件夹,但是当应用程序运行时,所有我在浏览器中得到的是Cannot GET /

我错过了一些东西,包括index.html – 但我不知道我需要什么文件。 所以我的问题是:

  1. 我的编译的应用程序文件夹以外的哪些文件需要运行该网站?
  2. 我可以使用Angular CLI修改项目文件来实现吗?

@Andez,

Angular CLI应该为你处理所有这些事情。 看看ng build ,它应该照顾你的两个问题。

  1. ng build会照顾到这一点,angular-cli.json的“apps”键中指定的内容将被包含在dist文件夹中
  2. angular-cli.json是需要修改的文件,以便在dist文件夹中包含所需的所有工件。

希望以上指出你在正确的方向

SOJ

要托pipe您的应用程序,您需要以下内容:

  1. 运行npm run build -- -prod (它与ng build -prod相同,但是有时可能更好,因为在这种情况下,你不需要在全局设置angularCLI,例如这对于CI生成器来说是好的)。 这将创build一个在.angular-cli.jsonconfiguration的文件夹。 默认情况下它是dist文件夹
  2. 把这个文件夹,并把它的内容到服务器的根

理想情况下,你不应该改变.angular-cli.json之外的任何设置。 为什么? 因为您需要成为Webpack,TypeScriptconfiguration和其他许多方面的专家。 而且,你所做的改变很可能不会被未来的angular-cli版本所支持。 请检查项目wiki ,我相信你会find你所有的问题/要求的答案。

这个答案仍然不包括你的服务器configuration。 你应该有一个404回退,最有可能的压缩和caching,也许是一些代理端点。 然而,这是一个很大的话题,它并不与angular度相关。