首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError: provideModuleMap不是一个函数~ NestJS

TypeError: provideModuleMap不是一个函数~ NestJS
EN

Stack Overflow用户
提问于 2019-08-09 13:54:55
回答 2查看 2.3K关注 0票数 2

升级NestJS后,我将得到以下错误TypeError: provideModuleMap is not a function。采用NestJS对服务器端渲染进行角度渲染,并结合角度通用渲染进行SSR渲染.

正确工作依赖关系:

代码语言:javascript
复制
"@nestjs/common": "^6.3.1",
"@nestjs/core": "^6.3.1",
"@nestjs/ng-universal": "^1.2.0",
"@nestjs/platform-express": "^6.3.1"

更新后的依赖项导致错误:

代码语言:javascript
复制
"@nestjs/common": "^6.5.2",
"@nestjs/core": "^6.5.2",
"@nestjs/ng-universal": "^2.0.0",
"@nestjs/platform-express": "^6.5.2"

nguniversal依赖项(它们不会更改):

代码语言:javascript
复制
"@nguniversal/common": "^8.1.1",
"@nguniversal/express-engine": "^8.1.1",
"@nguniversal/module-map-ngfactory-loader": "^8.1.1",
"express": "^4.17.1",

使用角8.2.0。(其他文件(app.server.module.ts,等)应该是好的,因为SSR的工作非常好使用SSR。全错误日志:

代码语言:javascript
复制
TypeError: provideModuleMap is not a function
    at View.app.engine (C:\users\myapp\node_modules\@nestjs\ng-universal\dist\utils\setup-universal.utils.js:23:17)
    at View.render (C:\users\myapp\node_modules\express\lib\view.js:135:8)
    at tryRender (C:\users\myapp\node_modules\express\lib\application.js:640:10)
    at Function.render (C:\users\myapp\node_modules\express\lib\application.js:592:3)
    at ServerResponse.render (C:\users\myapp\node_modules\express\lib\response.js:1012:7)
    at app.get (C:\users\myapp\node_modules\@nestjs\ng-universal\dist\angular-universal.module.js:60:66)
    at Layer.handle [as handle_request] (C:\users\myapp\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\users\myapp\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\users\myapp\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\users\myapp\node_modules\express\lib\router\layer.js:95:5)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-26 21:22:51

我无法在Nest中找到任何文档,但是查看AngularUniversalModule的选项界面,我尝试了这一点,并使它正常工作:

代码语言:javascript
复制
import { Module } from '@nestjs/common';
import { AngularUniversalModule, applyDomino } from '@nestjs/ng-universal';
import { join, resolve } from 'path';
import { ngExpressEngine } from '@nguniversal/express-engine';
import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';

const config = require('config');

// Path to server bundle in dist
const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('../../../../dist/server/main');

applyDomino(global, join(resolve(), `${config.Http.distDir}/client/index.html`));

@Module({
    imports: [
        AngularUniversalModule.forRoot({
            // Path to client code in dist
            viewsPath: join(resolve(), `${config.Http.distDir}/client`),
            bundle: {
                AppServerModuleNgFactory,
                LAZY_MODULE_MAP,
                provideModuleMap,
                ngExpressEngine
            }
        })
    ],
})
export class CoreModule
{
}
票数 2
EN

Stack Overflow用户

发布于 2019-09-23 08:53:18

server.ts

代码语言:javascript
复制
const { provideModuleMap } = require('@nguniversal/module-map-ngfactory-loader');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57431624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档