angular / angular/angular-cli

Add support for "<%_", "_%>" and "-%>" delimiters in templating in @angular-devkit/core

未關閉
#23,169 2 則留言 5 個 reaction 已指派 0 人 在 GitHub 檢視
area: @angular-devkit/core feature feature: in backlog
主要語言
TypeScript
星號
27k
分支
11.8k
平均合併
14 小時 23 分鐘
30 天內合併 PR
162

描述

# 🚀 Feature request

### Command (mark with an `x`)

- [x] generate

### Description

The templating for the @angular/devkit library uses EJS, sort of but doesn't support whitespace slurping the way that the documentation of EJS has declared it. Having this would enable schematic templates to be much more flexible with their whitespace and therefor easier to read while still creating nicely formatted files.

### Describe the solution you'd like

The three delimiters: `"<%_"`, `"_%>"` and `"-%>"` should just be added and work the same way that they do in EJS.

I already have an idea of the code that I'd like to add, and a pull request almost ready. It's very simple and only affects one file.

### Examples

Within [@schematics/angular](https://npmjs.com/package/@schematics/angular) this would allow an example like the following
```
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
<%_ if (routing) { %>
import { AppRoutingModule } from './app-routing.module';
<%_ } -%>
import { AppComponent } from './app.component';

@NgModule({
declarations: [
AppComponent
],
imports: [
<%_ if (routing) { -%>
AppRoutingModule,
<%_ } -%>
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
```

Which would generate with the correct whitespace.

貢獻指南

開啟貢獻指南

研究方向

該 issue 指出了 @angular-devkit/core 的範本實作,但沒有指定檔案或測試。先定位該實作,並將其分隔符處理方式與 EJS 進行比較;對於所示的 schematic template,當移除空白的分隔符 <%、_%> 和 -%> 能夠正常運作時,即視為完成。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
typescript
領域
tooling
Issue 類型
功能
難度
2/5
預估耗時
1-3 小時
活躍度
停滯
描述清晰度
基本清楚
新手友好度
28/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。