【发布时间】:2018-09-23 04:29:11
【问题描述】:
我用 Angular-CLI 创建了一个项目。 (使用命令:ng new my-angular-universal)。
然后我仔细地按照https://github.com/angular/angular-cli/wiki/stories-universal-rendering的所有指示进行操作
它为--prod 构建并且工作正常。但是没有关于如何设置--dev 构建并使用--watch 标志服务的说明。
我尝试从 npm "scripts" 中删除 --prod 标志,但它甚至无法在开发模式下运行。它构建得很好,但是当我在浏览器中打开它时,这是我看到的(直接打印到响应):
TypeError: Cannot read property 'moduleType' of undefined
at C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:7069:134
at ZoneDelegate.invoke (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:105076:26)
at Object.onInvoke (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:6328:33)
at ZoneDelegate.invoke (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:105075:32)
at Zone.run (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:104826:43)
at NgZone.run (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:6145:69)
at PlatformRef.bootstrapModuleFactory (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:7068:23)
at Object.renderModuleFactory (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:52132:39)
at View.engine (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:104656:23)
at View.render (C:\Users\Mikser\documents\git\my-angular-universal\dist\server.js:130741:8)
我目前使用的 npm 包版本是最新的:
- @angular/* - @5.2.*
- @angular/cli @1.7.3
除了 ts-loader,因为它不工作而不得不降级:
- ts-loader @3.5.0
因此,如果有人有任何有关如何使这项工作的信息,将不胜感激!或者,也许您知道一些项目模板,其中配置了为 --dev 和 --prod 构建以及 --watch 的能力配置的 Angular Universal App?
【问题讨论】:
-
这意味着您需要使用 watch 构建 3 件事,对:客户端包、服务器包以及重新构建 server.js/ts?
-
看来是这样。但是我很难理解为什么服务器包和 server.ts 代码被分开处理。
-
真正帮助我理解 Angular Universal 和所有构建步骤的是观看此视频:youtube.com/watch?v=QDasXnb6EFI。我强烈建议您观看并遵循所有步骤。
标签: node.js angular webpack angular-cli angular-universal