2016-05-11 6 views
1

Ich versuche Angular2 mit Webpack zu kompilieren; hier ist mein Setup: Ich habe eine vendor.ts Datei, in die ich habe:Webpack, Angular2 Wiederaufbau Optimierung

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'; 

Mein webpack.config.js:

"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"] 
    } 
}; 

Also, alles in Ordnung ist, webpack ist das Zeug kompilieren, aber es ist zu langsam. Es dauert 15089ms. Ich plane, dies als eine Schluckaufgabe hinzuzufügen, aber das wird nicht funktionieren, ich muss für jeden Speicher 3-5 Sekunden warten. Ist es möglich, ein Setup einzurichten, bei dem sich die Chunks nicht ändern, um eine Kompilierung zu verhindern? Dies würde die Leistung sehr verbessern. Vielen Dank im Voraus für jede Hilfe.

Antwort

4

Sie haben webpack.optimize.* Plugins zu deaktivieren, schalten devtool-eval und transpileOnly: true-ts-loader Abfrage hinzuzufügen.

+0

Danke für Ihre Antwort. Dies verbesserte die Leistung ein wenig, aber immer noch nicht genug. Ist immer noch ziemlich langsam und die Dateien sind jetzt zu groß. Ich denke, ich muss Webpack loswerden und evulithing mit Schluck machen. Dann denke ich, ich hätte mehr Kontrolle darüber, was ich kompilieren könnte. Weil ich wirklich die Verkäufer brauche, die nur kompiliert werden, wenn der Server gestartet wird. Und nur die app.js auf Änderungen in App-Verzeichnis neu zu kompilieren. – Alex

+1

sollte es schnell sein, aktivieren Webpack Watch-Modus: 'watch: true' – kemsky

+0

ty, Mann, das hat den Trick :) – Alex

Verwandte Themen