angular / angular/angular-cli

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

オープン
#23,169 コメント 2 件 リアクション 5 件 担当者 0 名 GitHub で見る
area: @angular-devkit/core feature feature: in backlog
主要言語
TypeScript
スター
27k
フォーク
11.8k
平均マージ
14時間 23分
マージ済み PR(30日)
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 を短くまとめたダイジェスト。