服务器端渲染Angular 6.1

时间:2018-12-29 20:09:54

标签: angular serverside-rendering angular-universal

我正在与nav { position:fixed; width: 100%; } 合作,并遵循有关SSR here的官方文档。

我面临的问题是当我运行命令时:

  

Angular 6.1.0

npm run build:ssr && npm run serve:ssr从我的serve:ssr的{​​{1}}文件中抛出了很多错误。

我已将项目上传到GitHub here,因为我不知道是什么在破坏它。

  

PS:官方文档提供的源代码也因相同的错误而中断。因此,如果一定与我的环境有关

控制台输出:

.spec.ts

1 个答案:

答案 0 :(得分:2)

因此,根据我的一个项目,我能够找出一些问题:

在webpack.server.config.js的规则数组中,我还有一条附加规则:

    {
            // Mark files inside `@angular/core` as using SystemJS style dynamic imports.
            // Removing this will cause deprecation warnings to appear.
            test: /(\\|\/)@angular(\\|\/)core(\\|\/).+\.js$/,
            parser: {system: true},
    },

我相信这会导致您在System.import周围发布的一些警告已被弃用。

在server.ts中我有

const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = require("./dist/server/main")

哪个解决方案无法解决./main.bundle错误。

此外,我认为您的tsconfig.server.json应该如下所示:

{
  "extends": "./tsconfig.app.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app-server",
    "baseUrl": "."
  },
  "angularCompilerOptions": {
    "entryModule": "app/app.server.module#AppServerModule"
  }
}

最后要解决茉莉花打字错误,您需要将打字稿更新为2.9.x(npm update typescript)才能解决问题。