LoginSignup
3
0

More than 5 years have passed since last update.

Angularのバージョンアップ(v5 => v6)でハマったところ

Posted at

Angularをv5からv6にアップデートした際に、開発環境でビルドしてるときは正常に動作していたが、一部コンポーネントでプロダクションビルドを行うと表示されないということがあって、かなりハマった。。

環境とかコードの書き方に問題があったのかもしれないが、プロダクションビルドする際に、内部的に必要なコードがTree Shakingの対象になっていたことが原因だったみたい。

Build Optimizerを使う場合、vendorChunk=false だと vendor.jsmain.js に統合されて、未使用のコードはよしなに削除されてるようで、それに伴い、内部的に必要なコードがTree Shakingの対象になりコンポーネントが表示されないことがある。

angular.jsonvendorChunk=true にし、 vendor.js を読み込むと解決した。

"configurations": {
  "development": {
    "optimization": false,
    "outputHashing": "none",
    "sourceMap": true,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": false,
    "vendorChunk": true, ←これをtrueにするとvendor.jsが出力されるようになる
    "buildOptimizer": false
  },
  "production": {
    "optimization": true,
    "outputHashing": "none",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": false,
    "vendorChunk": true, ←これをtrueにするとvendor.jsが出力されるようになる
    "buildOptimizer": true,
    "fileReplacements": [
      {
        "replace": "path/to/environment.ts",
        "with": "path/to/environment.prod.ts"
      }
    ]
  }
  ...
3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0