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 – 但我不知道我需要什么文件。 所以我的问题是:
- 我的编译的应用程序文件夹以外的哪些文件需要运行该网站?
- 我可以使用Angular CLI修改项目文件来实现吗?
@Andez,
Angular CLI应该为你处理所有这些事情。 看看ng build ,它应该照顾你的两个问题。
- ng build会照顾到这一点,angular-cli.json的“apps”键中指定的内容将被包含在dist文件夹中
- angular-cli.json是需要修改的文件,以便在dist文件夹中包含所需的所有工件。
希望以上指出你在正确的方向
SOJ
要托pipe您的应用程序,您需要以下内容:
- 运行
npm run build -- -prod
(它与ng build -prod
相同,但是有时可能更好,因为在这种情况下,你不需要在全局设置angularCLI,例如这对于CI生成器来说是好的)。 这将创build一个在.angular-cli.json
configuration的文件夹。 默认情况下它是dist
文件夹 - 把这个文件夹,并把它的内容到服务器的根
理想情况下,你不应该改变.angular-cli.json
之外的任何设置。 为什么? 因为您需要成为Webpack,TypeScriptconfiguration和其他许多方面的专家。 而且,你所做的改变很可能不会被未来的angular-cli版本所支持。 请检查项目wiki ,我相信你会find你所有的问题/要求的答案。
这个答案仍然不包括你的服务器configuration。 你应该有一个404回退,最有可能的压缩和caching,也许是一些代理端点。 然而,这是一个很大的话题,它并不与angular度相关。