angular / angular/angular-cli

Support multiple environments in the same build

オープン
#3,855 コメント 65 件 リアクション 65 件 担当者 0 名 GitHub で見る
area: @angular-devkit/build-angular area: docs devkit/build-angular:browser freq3: high severity2: inconvenient type: faq type: RFC / discussion / question
主要言語
TypeScript
スター
27k
フォーク
11.8k
平均マージ
14時間 23分
マージ済み PR(30日)
162

説明

> Please provide us with the following information:
> ---------------------------------------------------------------

### OS?
> Mac OSX (Sierra)

### Versions.
```
angular-cli: 1.0.0-beta.24
node: 6.9.2
os: darwin x64
@angular/common: 2.4.1
@angular/compiler: 2.4.1
@angular/core: 2.4.1
@angular/forms: 2.4.1
@angular/http: 2.4.1
@angular/platform-browser: 2.4.1
@angular/platform-browser-dynamic: 2.4.1
@angular/router: 3.4.1
@angular/compiler-cli: 2.4.1
```

### This is a feature request

I started internationalizing my application, and I met the following problem: when generating the bundle for the French locale (for example), I should include the locale-specific fr.js script of moment.js. Other libraries could also provide locale-specific JS files, or could need code that is specific to that locale (to internationalize a datepicker, for example).

I think the best way to do that would be to create an 'fr' environment file, simply containing

```
import 'moment/locale/fr.js';
```

and to use `--env fr`. Unfortunately, there doesn't seem to be a way to specify two different environments. And I wouldn't like to create a dev-fr environment, a prod-fr environment, a dev-en environment, a prod-en environment, etc.

Another use-case for that would be to create separate bundles for browsers, containing the polyfills that are needed for different browsers, and thus be able to generate a production bundle, for the French locale, and the chrome browser. I'm sure other use-cases could exist.

So I think it would be nice if angular-cli allowed specifying several environments. This is BTW a feature that exists in other build tools (like Maven profiles, or gradle properties, for example)

What do you think? Is there another nice way to achieve that?

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、--env オプションの angular-cli による処理と、ビルド設定のエントリーポイントから始めます。issue で説明されている locale とブラウザープロファイルのユースケースを再現し、その後、環境の各ペアを個別に宣言しなくても複数の環境を組み合わせられる方法を定義します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
build-system, cli, internationalization
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。