Merge pull request #6211 from sebakerckhof/minifiers

Rename separated minifiers to singular name and use separate versions…
This commit is contained in:
Sashko Stubailo
2016-02-10 14:21:27 -08:00
44 changed files with 51 additions and 34 deletions

View File

@@ -6,8 +6,8 @@
* Improve minimongo performance on updating documents when there are
many active observes. #5627
* Split up `standard-minifiers` in separate CSS (`standard-minifiers-css`) and JS
minifiers(`standard-minifiers-js`). `standard-minifiers` now acts as an umbrella package for these
* Split up `standard-minifiers` in separate CSS (`standard-minifier-css`) and JS
minifiers(`standard-minifier-js`). `standard-minifiers` now acts as an umbrella package for these
2 minifiers.
* Move `DDPRateLimiter` to the server only, since it won't work if it is called from the client. It

View File

@@ -41,7 +41,7 @@ or to allow your package to provide several components which your package's
users can opt into one by one.
Each compiled source file produces a separate CSS file. (The
`standard-minifiers` package merges them into one file afterwards.)
`standard-minifier-css` package merges them into one file afterwards.)
## Importing

View File

@@ -1,5 +1,5 @@
Tinytest.add("minifiers-css - simple css minification", function (test) {
Tinytest.add("minifier-css - simple css minification", function (test) {
var t = function (css, expected, desc) {
test.equal(CssTools.minifyCss(css), [expected], desc);
}

View File

@@ -1,5 +1,5 @@
Package.describe({
summary: "JavaScript and CSS minifiers",
summary: "CSS minifier",
version: "1.1.7"
});
@@ -16,15 +16,15 @@ Npm.strip({
Package.onUse(function (api) {
api.use('underscore', 'server');
api.export(['CssTools']);
api.addFiles(['minification.js', 'minifiers.js'], 'server');
api.addFiles(['minification.js', 'minifier.js'], 'server');
});
Package.onTest(function (api) {
api.use('minifiers-css', 'server');
api.use('minifier-css', 'server');
api.use('tinytest');
api.addFiles([
'minifiers-tests.js',
'minifier-tests.js',
'urlrewriting-tests.js'
], 'server');
});

View File

@@ -1,5 +1,5 @@
Tinytest.add("minifiers - url rewriting when merging", function (test) {
Tinytest.add("minifier-css - url rewriting when merging", function (test) {
var stylesheet = function(backgroundPath) {
return "body { color: green; background: top center url(" + backgroundPath + ") black, bottom center url(" + backgroundPath + "); }"
};
@@ -45,7 +45,7 @@ Tinytest.add("minifiers - url rewriting when merging", function (test) {
});
Tinytest.add("minifiers - url rewriting with media queries (ast rule recursion)", function (test) {
Tinytest.add("minifier-css - url rewriting with media queries (ast rule recursion)", function (test) {
var stylesheet = function(backgroundPath) {
return "@media (min--moz-device-pixel-ratio: 1.5),\n\
(-o-min-device-pixel-ratio: 3/2),\n\

View File

@@ -2,7 +2,7 @@
// The UglifyJSMinify API can also be used for beautification. Test that it
// behaves as expected.
Tinytest.add('minifiers - uglify beautify', function (test) {
Tinytest.add('minifier-js - uglify beautify', function (test) {
// See <https://github.com/mishoo/UglifyJS2#the-simple-way> and
// <http://lisperator.net/uglifyjs/codegen> for the API we're calling.
test.equal(UglifyJSMinify('one = function () { return 1; };',

View File

@@ -1,5 +1,5 @@
Package.describe({
summary: "JavaScript minifiers",
summary: "JavaScript minifier",
version: "1.1.7"
});
@@ -14,11 +14,11 @@ Npm.strip({
Package.onUse(function (api) {
api.use('underscore', 'server');
api.export(['UglifyJSMinify', 'UglifyJS']);
api.addFiles(['minifiers.js'], 'server');
api.addFiles(['minifier.js'], 'server');
});
Package.onTest(function (api) {
api.use('minifiers-js', 'server');
api.use('minifier-js', 'server');
api.use('tinytest');
api.addFiles([

View File

@@ -20,7 +20,7 @@ Tinytest.add("spacebars-compiler - compiler output", function (test) {
var postProcess = function (string) {
// remove initial and trailing parens
string = string.replace(/^\(([\S\s]*)\)$/, '$1');
if (! (Package['minifiers-js'] && Package['minifiers-js'].UglifyJSMinify)) {
if (! (Package['minifier-js'] && Package['minifier-js'].UglifyJSMinify)) {
// these tests work a lot better with access to beautification,
// but let's at least do some sort of test without it.
// These regexes may have to be adjusted if new tests are added.

View File

@@ -95,8 +95,8 @@ SpacebarsCompiler.codeGen = function (parseTree, options) {
};
SpacebarsCompiler._beautify = function (code) {
if (Package['minifiers-js'] && Package['minifiers-js'].UglifyJSMinify) {
var result = Package['minifiers-js'].UglifyJSMinify(
if (Package['minifier-js'] && Package['minifier-js'].UglifyJSMinify) {
var result = Package['minifier-js'].UglifyJSMinify(
code,
{ fromString: true,
mangle: false,

View File

@@ -11,10 +11,10 @@ Package.onUse(function (api) {
api.use('blaze-tools');
api.use('underscore');
// The templating plugin will pull in minifiers-js, so that generated code will
// The templating plugin will pull in minifier-js, so that generated code will
// be beautified. But it's a weak dependency so that eg boilerplate-generator
// doesn't pull in minifiers.
api.use('minifiers-js', ['server'], { weak: true });
// doesn't pull in the minifier.
api.use('minifier-js', ['server'], { weak: true });
api.addFiles(['templatetag.js',
'optimizer.js',
'react.js',

View File

@@ -1,4 +1,4 @@
Standard Minifiers for CSS
Standard Minifier for CSS
===
This package provides a minifier plugin used for Meteor apps by default.

View File

@@ -1,14 +1,14 @@
Package.describe({
name: 'standard-minifiers-css',
name: 'standard-minifier-css',
version: '1.0.2',
summary: 'Standard css minifiers used with Meteor apps by default.',
summary: 'Standard css minifier used with Meteor apps by default.',
documentation: 'README.md'
});
Package.registerBuildPlugin({
name: "minifyStdCSS",
use: [
'minifiers-css'
'minifier-css'
],
npmDependencies: {
"source-map": "0.4.2"

View File

@@ -1,4 +1,4 @@
Standard Minifiers for JS
Standard Minifier for JS
===
This package provides a minifier plugin used for Meteor apps by default.

View File

@@ -1,14 +1,14 @@
Package.describe({
name: 'standard-minifiers-js',
name: 'standard-minifier-js',
version: '1.0.2',
summary: 'Standard javascript minifiers used with Meteor apps by default.',
summary: 'Standard javascript minifier used with Meteor apps by default.',
documentation: 'README.md'
});
Package.registerBuildPlugin({
name: "minifyStdJS",
use: [
'minifiers-js'
'minifier-js'
],
sources: [
'plugin/minify-js.js'

View File

@@ -6,7 +6,7 @@ Package.describe({
});
Package.onUse(function(api) {
api.imply(['standard-minifiers-css','standard-minifiers-js']);
api.imply(['standard-minifier-css','standard-minifier-js']);
});
Package.onTest(function(api) {

View File

@@ -16,13 +16,13 @@ Package.onUse(function(api) {
'ecmascript',
'spacebars-compiler',
// minifiers-js is a weak dependency of spacebars-compiler; adding it here
// minifier-js is a weak dependency of spacebars-compiler; adding it here
// ensures that the output is minified. (Having it as a weak dependency means
// that we don't ship uglify etc with built apps just because
// boilerplate-generator uses spacebars-compiler.)
// XXX maybe uglify should be applied by this plugin instead of via magic
// weak dependency.
'minifiers-js'
'minifier-js'
]);
api.addFiles([

View File

@@ -10,7 +10,7 @@ Package.describe({
Package.registerBuildPlugin({
name: "compileTemplatesBatch",
// minifiers-js is a weak dependency of spacebars-compiler; adding it here
// minifier-js is a weak dependency of spacebars-compiler; adding it here
// ensures that the output is minified. (Having it as a weak dependency means
// that we don't ship uglify etc with built apps just because
// boilerplate-generator uses spacebars-compiler.)

View File

@@ -12,7 +12,8 @@ session # Client-side reactive dictionary for your app
jquery # Helpful client-side library
tracker # Meteor's client-side reactive programming library
standard-minifiers # JS/CSS minifiers run for production mode
standard-minifier-css # CSS minifier run for production mode
standard-minifier-js # JS minifier run for production mode
es5-shim # ECMAScript 5 compatibility for older browsers.
ecmascript # Enable ECMAScript2015+ syntax in app code

View File

@@ -128,7 +128,8 @@ var ROOT_PACKAGES_TO_BUILD_IN_SANDBOX = [
'tracker',
"autopublish",
"insecure",
"standard-minifiers",
"standard-minifier-css",
"standard-minifier-js",
"es5-shim"
];

View File

@@ -210,6 +210,21 @@ the guide about breaking changes here:`,
);
},
"1.3.0-split-minifiers-package": function (projectContext) {
// Minifiers are extracted into a new package called "standard-minifiers"
if (packagesFile.getConstraint('standard-minifiers')) {
packagesFile.removePackages(['standard-minifiers']);
packagesFile.addPackages([
// These packages replace meteor-platform in newly created apps
'standard-minifier-css',
'standard-minifier-js',
]);
}
projectContext.projectConstraintsFile.writeIfModified();
},
////////////
// PLEASE. When adding new upgraders that print mesasges, follow the
// examples for 0.9.0 and 0.9.1 above. Specifically, formatting