mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-15 21:36:36 +00:00
Minify once, reduce build warnings (#692)
* Minify once, reduce build warnings * Remove rollup-plugin-uglify * address comment
This commit is contained in:
parent
288ffad23a
commit
10ddb7faac
10
gulp/common/gulp-uglify.js
Normal file
10
gulp/common/gulp-uglify.js
Normal file
@ -0,0 +1,10 @@
|
||||
/**
|
||||
* UglifyJS gulp plugin that takes in a boolean to use ES or JS minification.
|
||||
*/
|
||||
const composer = require('gulp-uglify/composer');
|
||||
const uglifyjs = require('uglify-js');
|
||||
const uglifyes = require('uglify-es');
|
||||
|
||||
module.exports = function gulpUglify(es6, options) {
|
||||
return composer(es6 ? uglifyes : uglifyjs, console)(options);
|
||||
};
|
@ -1,8 +1,6 @@
|
||||
const gulpif = require('gulp-if');
|
||||
const uglifyjs = require('uglify-js');
|
||||
const uglifyes = require('uglify-es');
|
||||
const babel = require('gulp-babel');
|
||||
const composer = require('gulp-uglify/composer');
|
||||
const uglify = require('./gulp-uglify.js');
|
||||
const { gulp: cssSlam } = require('css-slam');
|
||||
const htmlMinifier = require('gulp-html-minifier');
|
||||
const { HtmlSplitter } = require('polymer-build');
|
||||
@ -19,7 +17,7 @@ module.exports.minifyStream = function (stream, es6) {
|
||||
['es2015', { modules: false }]
|
||||
]
|
||||
}))),
|
||||
gulpif(/\.js$/, composer(es6 ? uglifyes : uglifyjs, console)({ sourceMap: false })),
|
||||
gulpif(/\.js$/, uglify(es6, { sourceMap: false })),
|
||||
gulpif(/\.css$/, cssSlam()),
|
||||
gulpif(/\.html$/, cssSlam()),
|
||||
gulpif(/\.html$/, htmlMinifier({
|
||||
|
@ -1,14 +1,73 @@
|
||||
const gulp = require('gulp');
|
||||
const rollupEach = require('gulp-rollup-each');
|
||||
const rollupConfig = require('../../rollup.config');
|
||||
const rollupConfigEs6 = require('../../rollup.config-es6');
|
||||
const commonjs = require('rollup-plugin-commonjs');
|
||||
const nodeResolve = require('rollup-plugin-node-resolve');
|
||||
const replace = require('rollup-plugin-replace');
|
||||
const babel = require('rollup-plugin-babel');
|
||||
const uglify = require('../common/gulp-uglify.js');
|
||||
|
||||
const DEV = !!JSON.parse(process.env.BUILD_DEV || 'true');
|
||||
const DEMO = !!JSON.parse(process.env.BUILD_DEMO || 'false');
|
||||
|
||||
function getRollupInputOptions(es6) {
|
||||
const babelOpts = {
|
||||
babelrc: false,
|
||||
plugins: [
|
||||
'external-helpers',
|
||||
'transform-object-rest-spread',
|
||||
[
|
||||
'transform-react-jsx',
|
||||
{
|
||||
pragma: 'h'
|
||||
}
|
||||
],
|
||||
]
|
||||
};
|
||||
|
||||
if (!es6) {
|
||||
babelOpts.presets = [
|
||||
[
|
||||
'es2015',
|
||||
{
|
||||
modules: false
|
||||
}
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
return {
|
||||
plugins: [
|
||||
babel(babelOpts),
|
||||
|
||||
nodeResolve({
|
||||
jsnext: true,
|
||||
main: true,
|
||||
}),
|
||||
|
||||
commonjs(),
|
||||
|
||||
replace({
|
||||
values: {
|
||||
__DEV__: JSON.stringify(DEV),
|
||||
__DEMO__: JSON.stringify(DEMO),
|
||||
__BUILD__: JSON.stringify(es6 ? 'latest' : 'es5'),
|
||||
},
|
||||
}),
|
||||
],
|
||||
};
|
||||
}
|
||||
|
||||
const rollupOutputOptions = {
|
||||
format: 'iife',
|
||||
exports: 'none',
|
||||
};
|
||||
|
||||
gulp.task('run_rollup_es5', () => gulp.src([
|
||||
'js/core.js',
|
||||
'js/compatibility.js',
|
||||
'demo_data/demo_data.js',
|
||||
])
|
||||
.pipe(rollupEach(rollupConfig, rollupConfig))
|
||||
.pipe(rollupEach(getRollupInputOptions(/* es6= */ false), rollupOutputOptions))
|
||||
.pipe(gulp.dest('build-temp-es5')));
|
||||
|
||||
gulp.task('run_rollup', () => gulp.src([
|
||||
@ -18,7 +77,7 @@ gulp.task('run_rollup', () => gulp.src([
|
||||
'js/script-editor/script-editor.js',
|
||||
'demo_data/demo_data.js',
|
||||
])
|
||||
.pipe(rollupEach(rollupConfigEs6, rollupConfigEs6))
|
||||
.pipe(rollupEach(getRollupInputOptions(/* es6= */ true), rollupOutputOptions))
|
||||
.pipe(gulp.dest('build-temp')));
|
||||
|
||||
gulp.task('ru_all_es5', ['run_rollup_es5'], () => {
|
||||
@ -26,6 +85,7 @@ gulp.task('ru_all_es5', ['run_rollup_es5'], () => {
|
||||
'build-temp-es5/core.js',
|
||||
'build-temp-es5/compatibility.js',
|
||||
])
|
||||
.pipe(uglify(/* es6= */ false, { sourceMap: false }))
|
||||
.pipe(gulp.dest('build-es5/'));
|
||||
});
|
||||
|
||||
@ -33,6 +93,7 @@ gulp.task('ru_all', ['run_rollup'], () => {
|
||||
gulp.src([
|
||||
'build-temp/core.js',
|
||||
])
|
||||
.pipe(uglify(/* es6= */ true, { sourceMap: false }))
|
||||
.pipe(gulp.dest('build/'));
|
||||
});
|
||||
|
||||
|
@ -74,7 +74,6 @@
|
||||
"rollup-plugin-commonjs": "^8.2.6",
|
||||
"rollup-plugin-node-resolve": "^3.0.0",
|
||||
"rollup-plugin-replace": "^2.0.0",
|
||||
"rollup-plugin-uglify": "^2.0.1",
|
||||
"rollup-watch": "^4.3.1",
|
||||
"run-sequence": "^2.2.0",
|
||||
"sw-precache": "^5.2.0",
|
||||
|
@ -1,48 +0,0 @@
|
||||
const nodeResolve = require('rollup-plugin-node-resolve');
|
||||
const replace = require('rollup-plugin-replace');
|
||||
const babel = require('rollup-plugin-babel');
|
||||
const uglify = require('rollup-plugin-uglify');
|
||||
const { minify } = require('uglify-es');
|
||||
|
||||
const DEV = !!JSON.parse(process.env.BUILD_DEV || 'true');
|
||||
const DEMO = !!JSON.parse(process.env.BUILD_DEMO || 'false');
|
||||
|
||||
const plugins = [
|
||||
babel({
|
||||
babelrc: false,
|
||||
plugins: [
|
||||
'external-helpers',
|
||||
'transform-object-rest-spread',
|
||||
[
|
||||
'transform-react-jsx',
|
||||
{
|
||||
pragma: 'h'
|
||||
}
|
||||
],
|
||||
]
|
||||
}),
|
||||
|
||||
nodeResolve({
|
||||
jsnext: true,
|
||||
main: true,
|
||||
}),
|
||||
|
||||
replace({
|
||||
values: {
|
||||
__DEV__: JSON.stringify(DEV),
|
||||
__DEMO__: JSON.stringify(DEMO),
|
||||
__BUILD__: JSON.stringify('latest'),
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
if (!DEV) {
|
||||
plugins.push(uglify({}, minify));
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
format: 'iife',
|
||||
exports: 'none',
|
||||
treeshake: true,
|
||||
plugins,
|
||||
};
|
@ -1,58 +0,0 @@
|
||||
const commonjs = require('rollup-plugin-commonjs');
|
||||
const nodeResolve = require('rollup-plugin-node-resolve');
|
||||
const replace = require('rollup-plugin-replace');
|
||||
const babel = require('rollup-plugin-babel');
|
||||
const uglify = require('rollup-plugin-uglify');
|
||||
|
||||
const DEV = !!JSON.parse(process.env.BUILD_DEV || 'true');
|
||||
const DEMO = !!JSON.parse(process.env.BUILD_DEMO || 'false');
|
||||
|
||||
const plugins = [
|
||||
babel({
|
||||
babelrc: false,
|
||||
presets: [
|
||||
[
|
||||
'es2015',
|
||||
{
|
||||
modules: false
|
||||
}
|
||||
]
|
||||
],
|
||||
plugins: [
|
||||
'external-helpers',
|
||||
'transform-object-rest-spread',
|
||||
[
|
||||
'transform-react-jsx',
|
||||
{
|
||||
pragma: 'h'
|
||||
}
|
||||
],
|
||||
]
|
||||
}),
|
||||
|
||||
nodeResolve({
|
||||
jsnext: true,
|
||||
main: true,
|
||||
}),
|
||||
|
||||
commonjs(),
|
||||
|
||||
replace({
|
||||
values: {
|
||||
__DEV__: JSON.stringify(DEV),
|
||||
__DEMO__: JSON.stringify(DEMO),
|
||||
__BUILD__: JSON.stringify('es5'),
|
||||
},
|
||||
}),
|
||||
];
|
||||
|
||||
if (!DEV) {
|
||||
plugins.push(uglify());
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
format: 'iife',
|
||||
exports: 'none',
|
||||
treeshake: true,
|
||||
plugins,
|
||||
};
|
@ -6802,12 +6802,6 @@ rollup-plugin-replace@^2.0.0:
|
||||
minimatch "^3.0.2"
|
||||
rollup-pluginutils "^2.0.1"
|
||||
|
||||
rollup-plugin-uglify@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-2.0.1.tgz#67b37ad1efdafbd83af4c36b40c189ee4866c969"
|
||||
dependencies:
|
||||
uglify-js "^3.0.9"
|
||||
|
||||
rollup-pluginutils@^1.5.0:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
|
||||
@ -7835,7 +7829,7 @@ uglify-js@3.1.x:
|
||||
commander "~2.11.0"
|
||||
source-map "~0.5.1"
|
||||
|
||||
uglify-js@^3.0.5, uglify-js@^3.0.9:
|
||||
uglify-js@^3.0.5:
|
||||
version "3.0.28"
|
||||
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.0.28.tgz#96b8495f0272944787b5843a1679aa326640d5f7"
|
||||
dependencies:
|
||||
|
Loading…
x
Reference in New Issue
Block a user