不使用Webpack使用Angular Universal
创始人
2024-12-29 13:30:07
0

要使用Angular Universal而不使用Webpack,你可以按照以下步骤进行操作:

  1. 创建一个Angular项目:

    ng new my-app
    
  2. 安装Angular Universal依赖项:

    npm install @nguniversal/express-engine express
    
  3. 创建一个名为server.ts的文件,用来启动服务器:

    import 'zone.js/dist/zone-node';
    import 'reflect-metadata';
    import { enableProdMode } from '@angular/core';
    import { renderModuleFactory } from '@angular/platform-server';
    import { provideModuleMap } from '@nguniversal/module-map-ngfactory-loader';
    import * as express from 'express';
    import { readFileSync } from 'fs';
    
    enableProdMode();
    
    const app = express();
    const PORT = process.env.PORT || 4000;
    const DIST_FOLDER = join(process.cwd(), 'dist');
    
    const { AppServerModuleNgFactory, LAZY_MODULE_MAP } = require('./dist/server/main');
    
    const template = readFileSync(join(DIST_FOLDER, 'browser', 'index.html')).toString();
    
    app.engine('html', (_, options, callback) => {
      const opts = { document: template, url: options.req.url };
    
      renderModuleFactory(AppServerModuleNgFactory, {
        document: template,
        url: options.req.url,
        extraProviders: [
          provideModuleMap(LAZY_MODULE_MAP)
        ]
      })
      .then(html => callback(null, html));
    });
    
    app.set('view engine', 'html');
    app.set('views', join(DIST_FOLDER, 'browser'));
    
    app.get('*.*', express.static(join(DIST_FOLDER, 'browser')));
    
    app.get('*', (req, res) => {
      res.render('index', { req });
    });
    
    app.listen(PORT, () => {
      console.log(`Node server listening on http://localhost:${PORT}`);
    });
    

    这个文件将负责启动服务器并渲染Angular应用程序。

  4. package.json中添加一个脚本来启动服务器:

    "scripts": {
      "build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
      "serve:ssr": "node dist/server",
      ...
    }
    
  5. 构建和编译Angular项目:

    npm run build:ssr
    
  6. 启动服务器:

    npm run serve:ssr
    

现在,你的Angular应用程序将在服务器端以无需使用Webpack的方式运行。

相关内容

热门资讯

4分钟攻略!越乡游双扣辅助,德... 4分钟攻略!越乡游双扣辅助,德州微扑克辅助(详细透视辅助黑科技教程);玩家必备必赢加哟《136704...
五分钟了解!吉祥麻将填大坑,德... WePoker透视辅助版本稳定性对比与推荐‌:五分钟了解!吉祥麻将填大坑,德扑ai人工智能(详细透视...
三分钟教程!财神十三张有辅助吗... 三分钟教程!财神十三张有辅助吗,fishpoker大菠萝外 挂(详细透视辅助挂教程);(需添加指定薇...
9分钟了解!浩瀚麻将平台有挂吗... WePoke高级策略深度解析‌;9分钟了解!浩瀚麻将平台有挂吗,好运大菠萝有辅助(详细透视辅助神器教...
3分钟透明!手机牌乐门打麻将开... 3分钟透明!手机牌乐门打麻将开得了挂吗,微扑克发牌规律性总结(详细透视辅助挂教程);《WPK辅助透视...
三分钟黑科技!拱趴大菠萝输赢概... 《拱趴大菠萝输赢概率可以调吗软件透明挂》是一款多人竞技的拱趴大菠萝输赢概率可以调吗辅助透视游戏,你将...
五分钟透明!博乐温州棋牌有没有... 这是一款非常优秀的博乐温州棋牌有没有挂 ia辅助检测软件,能够让你了解到博乐温州棋牌有没有挂中牌率当...
六分钟辅助挂!博雅红河棋盘外挂... 1、六分钟辅助挂!博雅红河棋盘外挂,微扑克智能助手(详细透视辅助挂教程);详细教程。2、博雅红河棋盘...
6分钟黑科技!友友邳州麻将辅助... 6分钟黑科技!友友邳州麻将辅助器,微扑克靠谱(详细透视辅助软件教程);实战中需综合运用上述技巧,并根...
4分钟攻略!传送屋有外 挂,德... 4分钟攻略!传送屋有外 挂,德扑之星记分牌有有用(详细透视辅助挂教程);传送屋有外 挂黑科技是一款具...