From d06fe17e25fec0a5003aceef5a4f901774d7c0ea Mon Sep 17 00:00:00 2001 From: Slava Kim Date: Fri, 26 Jun 2015 17:31:28 -0700 Subject: [PATCH] Give minifiers an option to set the output path for files Also makes linked js urls better in devel mode --- packages/standard-minifiers/plugin/minify-css.js | 3 ++- packages/standard-minifiers/plugin/minify-js.js | 3 ++- tools/bundler.js | 16 ++++++++++++++-- tools/minifier-plugin.js | 8 ++++++-- 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/packages/standard-minifiers/plugin/minify-css.js b/packages/standard-minifiers/plugin/minify-css.js index 2bcf54fef2..8188c96594 100644 --- a/packages/standard-minifiers/plugin/minify-css.js +++ b/packages/standard-minifiers/plugin/minify-css.js @@ -15,7 +15,8 @@ CssToolsMinifier.prototype.processFilesForTarget = function (files, mode) { if (mode === 'development') { files[0].addStylesheet({ data: merged.code, - sourceMap: merged.sourceMap + sourceMap: merged.sourceMap, + path: 'merged-stylesheets.css' }); return; } diff --git a/packages/standard-minifiers/plugin/minify-js.js b/packages/standard-minifiers/plugin/minify-js.js index c8610bb937..34fa8cf95b 100644 --- a/packages/standard-minifiers/plugin/minify-js.js +++ b/packages/standard-minifiers/plugin/minify-js.js @@ -13,7 +13,8 @@ UglifyJSMinifier.prototype.processFilesForTarget = function (files, mode) { files.forEach(function (file) { file.addJavaScript({ data: file.getContentsAsBuffer(), - sourceMap: file.getSourceMap() + sourceMap: file.getSourceMap(), + path: file.getPathInPackage() }); }); return; diff --git a/tools/bundler.js b/tools/bundler.js index b98b37465e..62a902b866 100644 --- a/tools/bundler.js +++ b/tools/bundler.js @@ -846,7 +846,13 @@ _.extend(Target.prototype, { if (file.sourceMap) { newFile.setSourceMap(file.sourceMap, '/'); } - newFile.setUrlToHash('.js'); + + if (file.path) { + newFile.setUrlFromRelPath(file.path); + newFile.targetPath = file.path; + } else { + newFile.setUrlToHash('.js'); + } return newFile; }); @@ -998,7 +1004,13 @@ _.extend(ClientTarget.prototype, { if (file.sourceMap) { newFile.setSourceMap(file.sourceMap, '/'); } - newFile.setUrlToHash('.css', '?meteor_css_resource=true'); + + if (file.path) { + newFile.setUrlFromRelPath(file.path); + newFile.targetPath = file.path; + } else { + newFile.setUrlToHash('.css', '?meteor_css_resource=true'); + } return newFile; }); diff --git a/tools/minifier-plugin.js b/tools/minifier-plugin.js index 2ef309c08c..ac83dd53b0 100644 --- a/tools/minifier-plugin.js +++ b/tools/minifier-plugin.js @@ -51,12 +51,14 @@ util.inherits(JsFile, InputFile); _.extend(JsFile.prototype, { // - data // - sourceMap + // - path // - hash? addJavaScript: function (options) { var self = this; self._minifiedFiles.push({ data: options.data, - sourceMap: options.sourceMap + sourceMap: options.sourceMap, + path: options.path }); } }); @@ -70,12 +72,14 @@ util.inherits(CssFile, InputFile); _.extend(CssFile.prototype, { // - data // - sourceMap + // - path // - hash? addStylesheet: function (options) { var self = this; self._minifiedFiles.push({ data: options.data, - sourceMap: options.sourceMap + sourceMap: options.sourceMap, + path: options.path }); } });