2016-05-11 14 views
1

WebpackでAngular2をコンパイルしようとしています。ここに私のセットアップは次のとおりです。Webpack、Angular2再構築最適化

import 'es6-shim/es6-shim.min'; 
import 'reflect-metadata/Reflect.js'; 
import 'zone.js/dist/zone'; 

import '@angular/platform-browser'; 
import '@angular/platform-browser-dynamic'; 
import '@angular/core'; 
import '@angular/common'; 
import '@angular/http'; 
import '@angular/router-deprecated'; 

マイwebpack.config.js:私は私が持っているvendor.tsファイルを持っている

"use strict"; 
let path = require('path'); 
let webpack = require("webpack"); 
let CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin; 
let ProvidePlugin = webpack.ProvidePlugin; 
let UglifyJsPlugin = webpack.optimize.UglifyJsPlugin; 

module.exports = { 
    devtool: 'source-map', 
    debug: true, // set false in production 
    cache: true, 
    entry: { 
     vendor: './app/vendor.ts', 
     app: './app/main.ts' 
    }, 
    output: { 
     filename: './public/assets/js/[name].js' 
    }, 
    plugins: [ 
     new webpack.optimize.OccurenceOrderPlugin(true), 
     new webpack.optimize.CommonsChunkPlugin({name: 'vendor', filename: './public/assets/js/vendor.js', minChunks: Infinity}), 
     new UglifyJsPlugin({ 
      compress: { 
       warnings: false 
      } 
     }) 
    ], 
    module: { 
     loaders: [ 
      { 
       test: /\.ts$/, 
       loader: 'ts-loader', 
       query: { 
        'ignoreDiagnostics': [ 
         2403, // 2403 -> Subsequent variable declarations 
         2300, // 2300 -> Duplicate identifier 
         2374, // 2374 -> Duplicate number index signature 
         2375 // 2375 -> Duplicate string index signature 
        ] 
       }, 
       exclude: [/\.(spec|e2e)\.ts$/, /node_modules\/(?!(ng2-.+))/] 
      } 
     ] 
    }, 

    resolve: { 
     extensions: ["", ".ts", ".js"] 
    } 
}; 

だから、すべてはWebPACKのは、原料のコンパイルされ、罰金ですが、それはあまりにも遅いです。それは15089msを取っている。これをガルプ・タスクとして追加する予定ですが、これは機能しません。保存するたびに3〜5秒待たなければなりません。チャンクが変更されない場合、コンパイルを防止するためにセットアップを行うことは可能ですか?これにより、パフォーマンスが大幅に向上します。助けをありがとうございました。

答えて

4

あなたは、webpack.optimize.*プラグインを無効にevaldevtoolを切り替えてtranspileOnly: truets-loaderにクエリを追加する必要があります。

+0

あなたの答えをありがとう。これにより、プレフォームのビットが改善されましたが、まだ十分ではありません。まだかなり遅く、ファイルが大きすぎます。私はwebpackを取り除き、うんざりとevrithingをしなければならないと思う。そうすれば、私は何をコンパイルするのかをもっとコントロールすることができます。なぜなら、ベンダーがコンパイルされるためには、サーバーの起動時だけです。 appディレクトリの変更についてapp.jsだけを再コンパイルします。 – Alex

+1

これは速くなければなりません。ウェブパックのウォッチモードを有効にしてください: 'watch:true ' – kemsky

+0

ty、manこれがトリックでした:) – Alex

関連する問題