【问题标题】:Angular 2 Universal - Server Side Rendering with stylus and pug templateAngular 2 Universal - 使用手写笔和 pug 模板的服务器端渲染
【发布时间】:2016-10-01 02:39:03
【问题描述】:

我正在尝试使用 Angular2、typescript、stylus(用于 css)和 pug(用于 html 模板)构建一个应用程序。

但是,我不能让它与 Angular2 Universal 一起工作。

问题是我使用ts-node 来运行我的服务器代码,并且每当我导入我的应用程序组件时,都会发生错误。

server.ts (node/express):

import 'angular2-universal/polyfills';

import * as path from 'path';
import * as express from 'express';
import * as bodyParser from 'body-parser';


// Angular 2 Universal
import {
  provide,
  enableProdMode,
  expressEngine,
  REQUEST_URL,
  ORIGIN_URL,
  BASE_URL,
  NODE_ROUTER_PROVIDERS,
  NODE_HTTP_PROVIDERS,
  ExpressEngineConfig
} from 'angular2-universal';

// Application
import {App} from './app/modules/app';

发生错误:

app/modules/app/app.styl:2 margin-bottom: 10px ^ SyntaxError: Unexpected token :

app.ts

import {Component, ViewEncapsulation} from '@angular/core';
import {RouteConfig, Router, ROUTER_DIRECTIVES} from '@angular/router-deprecated';

import {Home} from '../home';


/*
 * App Component
 * Top Level Component
 */
@Component({
  selector:      'app',
  pipes:         [ ],
  providers:     [ ],
  directives:    [ ],
  encapsulation: ViewEncapsulation.None,
  styles:        [
    require('./app.styl')
  ],
  template: require('./app.pug')
})

app.styl

input
  margin-bottom: 10px

另一种方法是运行构建代码(由 webpack 生成)。但是我该怎么做呢,因为代码是由webpackjsonp 函数包装的。

【问题讨论】:

标签: angular webpack angular2-universal


【解决方案1】:

您可以通过预编译使用stylus:stylus -> css -> styles: [require(.css)]

模板也可以像这样预编译或处理:

function compile(template:string)
{
      pug.compile(template, {});
}

//component definition
template: compile(require('template.pug'))

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 2017-04-27
    • 2017-11-22
    • 2021-06-11
    • 2018-12-13
    • 2016-05-27
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    相关资源
    最近更新 更多