mirror of https://github.com/webpack/webpack.git
Fixed caching
This commit is contained in:
parent
d85324c9fd
commit
b5b672233f
|
|
@ -21,6 +21,13 @@ SourceMapDevToolPlugin.prototype.apply = function(compiler) {
|
||||||
chunks.forEach(function(chunk) {
|
chunks.forEach(function(chunk) {
|
||||||
chunk.files.slice().forEach(function(file) {
|
chunk.files.slice().forEach(function(file) {
|
||||||
var asset = this.assets[file];
|
var asset = this.assets[file];
|
||||||
|
if(asset.__SourceMapDevTool_Data) {
|
||||||
|
var data = asset.__SourceMapDevTool_Data;
|
||||||
|
for(var file in data) {
|
||||||
|
this.assets[file] = data[file];
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
var sourceMap = asset.map();
|
var sourceMap = asset.map();
|
||||||
if(sourceMap) {
|
if(sourceMap) {
|
||||||
for(var i = 0; i < sourceMap.sources.length; i++) {
|
for(var i = 0; i < sourceMap.sources.length; i++) {
|
||||||
|
|
@ -40,17 +47,18 @@ SourceMapDevToolPlugin.prototype.apply = function(compiler) {
|
||||||
sourceMap.sources[i] = str;
|
sourceMap.sources[i] = str;
|
||||||
}
|
}
|
||||||
sourceMap.sourceRoot = "webpack-module://";
|
sourceMap.sourceRoot = "webpack-module://";
|
||||||
|
asset.__SourceMapDevTool_Data = {};
|
||||||
if(sourceMapFilename) {
|
if(sourceMapFilename) {
|
||||||
var sourceMapFile = sourceMapFilename
|
var sourceMapFile = sourceMapFilename
|
||||||
.replace(Template.REGEXP_FILE, file)
|
.replace(Template.REGEXP_FILE, file)
|
||||||
.replace(Template.REGEXP_FILEBASE, basename(file))
|
.replace(Template.REGEXP_FILEBASE, basename(file))
|
||||||
.replace(Template.REGEXP_HASH, this.hash)
|
.replace(Template.REGEXP_HASH, this.hash)
|
||||||
.replace(Template.REGEXP_ID, chunk.id);
|
.replace(Template.REGEXP_ID, chunk.id);
|
||||||
this.assets[file] = new ConcatSource(asset, "\n/*\n//@ sourceMappingURL=" + sourceMapFile + "\n*/");
|
asset.__SourceMapDevTool_Data[file] = this.assets[file] = new ConcatSource(asset, "\n/*\n//@ sourceMappingURL=" + sourceMapFile + "\n*/");
|
||||||
this.assets[sourceMapFile] = new RawSource(JSON.stringify(sourceMap));
|
asset.__SourceMapDevTool_Data[sourceMapFile] = this.assets[sourceMapFile] = new RawSource(JSON.stringify(sourceMap));
|
||||||
chunk.files.push(sourceMapFile);
|
chunk.files.push(sourceMapFile);
|
||||||
} else {
|
} else {
|
||||||
this.assets[file] = new ConcatSource(asset, "\n/*\n//@ sourceMappingURL=data:application/json;base64," + base64Encode(JSON.stringify(sourceMap)) + "\n*/");
|
asset.__SourceMapDevTool_Data[file] = this.assets[file] = new ConcatSource(asset, "\n/*\n//@ sourceMappingURL=data:application/json;base64," + base64Encode(JSON.stringify(sourceMap)) + "\n*/");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, this);
|
}, this);
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,12 @@ UglifyJsPlugin.prototype.apply = function(compiler) {
|
||||||
});
|
});
|
||||||
files.forEach(function(file) {
|
files.forEach(function(file) {
|
||||||
try {
|
try {
|
||||||
var input = compilation.assets[file].source();
|
var asset = compilation.assets[file];
|
||||||
|
var input = asset.source();
|
||||||
|
if(asset.__UglifyJsPlugin) {
|
||||||
|
compilation.assets[file] = asset.__UglifyJsPlugin;
|
||||||
|
return;
|
||||||
|
}
|
||||||
var inputSourceMap = compilation.assets[file].map();
|
var inputSourceMap = compilation.assets[file].map();
|
||||||
var ast = uglify.parse(input, {
|
var ast = uglify.parse(input, {
|
||||||
filename: file
|
filename: file
|
||||||
|
|
@ -56,7 +61,7 @@ UglifyJsPlugin.prototype.apply = function(compiler) {
|
||||||
ast.print(stream);
|
ast.print(stream);
|
||||||
map = map + "";
|
map = map + "";
|
||||||
stream = stream + "";
|
stream = stream + "";
|
||||||
compilation.assets[file] = new SourceMapSource(stream, file, map, input, inputSourceMap);
|
asset.__UglifyJsPlugin = compilation.assets[file] = new SourceMapSource(stream, file, map, input, inputSourceMap);
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
err.file = file;
|
err.file = file;
|
||||||
compilation.warnings.push(err);
|
compilation.warnings.push(err);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,7 @@ app.configure(function() {
|
||||||
dedupe: true
|
dedupe: true
|
||||||
},
|
},
|
||||||
hot: true,
|
hot: true,
|
||||||
|
cache: true,
|
||||||
recordsPath: path.join(__dirname, "webpack.records.json"),
|
recordsPath: path.join(__dirname, "webpack.records.json"),
|
||||||
output: {
|
output: {
|
||||||
publicPath: "http://localhost:8080/js/",
|
publicPath: "http://localhost:8080/js/",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue