2015-07-30 7 views
18

Ich bin auf der Suche nach Informationen zum Löschen von alten webpack Chunked-Dateien. Hier ist meine aktuelle webpack Konfiguration:Löschen Sie nicht verwendete webpack Chunked-Dateien

var path = require('path'); 
var webpack = require('webpack'); 

module.exports = { 
    debug: false, 
    outputPathinfo: true, 
    displayErrorDetails: true, 
    context: __dirname, 
    entry: { 
    common: ['./src/common.coffee'], 
    a: './src/a.cjsx', 
    b: './src/b.cjsx' 
    }, 
    output: { 
    filename: '[name]-[chunkhash].js', 
    chunkFileName: '[name].[chunkhash].js', 
    path: path.join(__dirname, 'js') 
    }, 
    plugins: [ 
    new webpack.optimize.CommonsChunkPlugin('common', 'common-[chunkhash].js'), 
    new webpack.optimize.UglifyJsPlugin({ 
     compress: { warnings: false } 
    }) 
    ], 
    module: { 
    preLoaders: [ 
     { 
     test: /\.coffee$/, 
     exclude: /node_modules/, 
     loader: 'coffeelint-loader' 
     } 
    ], 
    loaders: [ 
     { test: /\.coffee/, loader: 'coffee' }, 
     { test: /\.cjsx$/, loaders: ['coffee', 'cjsx'] }, 
     { test: /\.js$/, loader: 'jsx-loader?harmony' } 
    ] 
    } 
} 

Wenn ich $(npm bin)/webpack --config webpack.js --watch leite und Änderungen an a.cjsx, kompiliert es eine neuere Version dieser Datei mit einem neuen chunkedhash. Der alte bleibt jedoch und ich möchte, dass er sofort gelöscht wird.

  1. Wie kann ich die alte Version der Chunked-Datei löschen?
  2. Gibt es eine Möglichkeit für mich, in einen After Callback einzuhaken, sobald die Uhr fertig ist mit dem Kompilieren?

Antwort

9

Es gibt eine clean-webpack-plugin für diese Zwecke, oder Sie können ein einfaches bash Skript für npm schreiben:

"scripts": { 
    "build": "rm -r dist/* && webpack -p", 
    "clean": "rm -r dist/*" 
    } 
+10

Der Autor bedeutet, wie man alten 'Chunk' mit' hash' löscht, wenn man '--watch' cli Option benutzt. – novaline

+0

Leider funktioniert clean-webpack-plugin mit 'webpack --watch' (es wird einmal bereinigt, danach werden mehrere Versionen der gleichen Datei bei jeder Änderung angehäuft); wahrscheinlich, weil es nicht wirklich weiß, welche Stücke veraltet sind. – youen

5

Hier ist das webpack-clean-obsolete-chunks Plugin, das tun was du willst. Es sucht nach allen aktualisierten Chunks und löscht veraltete Dateien nach jeder webpack Compilierung.

Verwandte Themen