bin.run(['-version'], function (err) {
	if (err) {
		log.warn(err.message);
		log.warn('mozjpeg pre-build test failed');
		log.info('compiling from source');

		var cfg = [
			'./configure --disable-shared',
			'--prefix="' + bin.dest() + '" --bindir="' + bin.dest() + '"',
			'--libdir="' + bin.dest() + '"'
		].join(' ');

		var builder = new BinBuild()
			.src('https://github.com/mozilla/mozjpeg/archive/v3.1.tar.gz')
			.cmd('autoreconf -fiv')
			.cmd(cfg)
			.cmd('make --jobs=' + String(cpuNum))
			.cmd('make install --jobs=' + String(cpuNum));

		return builder.run(function (err) {
			if (err) {
				log.error(err.stack);
				return;
			}

			log.success('mozjpeg built successfully');
		});
	}

	log.success('mozjpeg pre-build test passed successfully');
});
Esempio n. 2
0
bin.run(['--version'], err => {
	if (err) {
		logalot.warn(err.message);
		logalot.warn('pngquant pre-build test failed');
		logalot.info('compiling from source');

		const libpng = process.platform === 'darwin' ? 'libpng' : 'libpng-dev';

		binBuild.file(path.resolve(__dirname, '../vendor/source/pngquant.tar.gz'), [
			'rm ./INSTALL',
			`./configure --prefix="${bin.dest()}"`,
			`make install BINPREFIX="${bin.dest()}"`
		])
			.then(() => {
				logalot.success('pngquant built successfully');
			})
			.catch(err => {
				err.message = `pngquant failed to build, make sure that ${libpng} is installed`;
				logalot.error(err.stack);

				// eslint-disable-next-line unicorn/no-process-exit
				process.exit(1);
			});
	}

	logalot.success('pngquant pre-build test passed successfully');
});
Esempio n. 3
0
bin.run(['-version'], err => {
	if (err) {
		log.warn(err.message);
		log.warn('mozjpeg pre-build test failed');
		log.info('compiling from source');

		let cfgExtras = '';
		if (process.platform === 'darwin') {
			cfgExtras = 'libpng_LIBS=\'/usr/local/lib/libpng16.a -lz\' --enable-static';
		}

		const cfg = [
			`./configure --disable-shared --disable-dependency-tracking --with-jpeg8 ${cfgExtras}`,
			`--prefix="${bin.dest()}" --bindir="${bin.dest()}" --libdir="${bin.dest()}"`
		].join(' ');

		const builder = new BinBuild()
			.src('https://github.com/mozilla/mozjpeg/releases/download/v3.2/mozjpeg-3.2-release-source.tar.gz')
			.cmd('autoreconf -fiv')
			.cmd(cfg)
			.cmd(`make -j${cpuNum}`)
			.cmd(`make install -j${cpuNum}`);

		return builder.run(err => {
			if (err) {
				log.error(err.stack);
				return;
			}

			log.success('mozjpeg built successfully');
		});
	}

	log.success('mozjpeg pre-build test passed successfully');
});
Esempio n. 4
0
bin.run(['--version'], function (err) {
	if (err) {
		logalot.warn(err.message);
		logalot.warn('pngquant pre-build test failed');
		logalot.info('compiling from source');

		var libpng = process.platform === 'darwin' ? 'libpng' : 'libpng-dev';
		var builder = new BinBuild()
			.src('https://github.com/pornel/pngquant/archive/2.7.1.tar.gz')
			.cmd('rm ./INSTALL')
			.cmd('./configure --prefix="' + bin.dest() + '"')
			.cmd('make install BINPREFIX="' + bin.dest() + '"');

		return builder.run(function (err) {
			if (err) {
				err.message = [
					'pngquant failed to build, make sure that',
					libpng + ' is installed'
				].join(' ');

				logalot.error(err.stack);
				return;
			}

			logalot.success('pngquant built successfully');
		});
	}

	logalot.success('pngquant pre-build test passed successfully');
});
Esempio n. 5
0
bin.run(function (err) {
	if (err) {
		log.warn(err.message);
		log.warn('optipng pre-build test failed');
		log.info('compiling from source');

		new BinBuild()
			.src('http://downloads.sourceforge.net/project/optipng/OptiPNG/optipng-0.7.6/optipng-0.7.6.tar.gz')
			.cmd([
				'./configure --with-system-zlib --prefix="' + bin.dest() + '"',
				'--bindir="' + bin.dest() + '"'
			].join(' '))
			.cmd('make install')
			.run(function (err) {
				if (err) {
					log.error(err.stack);
					return;
				}

				log.success('optipng built successfully');
			});

		return;
	}

	log.success('optipng pre-build test passed successfully');
});
Esempio n. 6
0
}).catch(error => {
	log.warn(error.message);
	log.warn('cwebp pre-build test failed');
	log.info('compiling from source');

	binBuild.url('http://downloads.webmproject.org/releases/webp/libwebp-1.0.2.tar.gz', [
		`./configure --disable-shared --prefix="${bin.dest()}" --bindir="${bin.dest()}"`,
		'make && make install'
	]).then(() => {
		log.success('cwebp built successfully');
	}).catch(error => {
		log.error(error.stack);
	});
});
Esempio n. 7
0
bin.run(['-version'], function (err) {
	if (err) {
		log.warn(err.message);
		log.warn('pngcrush pre-build test failed');
		log.info('compiling from source');

		var builder = new BinBuild()
			.src('http://downloads.sourceforge.net/project/pmt/pngcrush/1.7.85/pngcrush-1.7.85.zip')
			.cmd('mkdir -p ' + bin.dest())
			.cmd('make && mv ' + bin.use() + ' ' + bin.path());

		return builder.run(function (err) {
			if (err) {
				log.error(err.stack);
				return;
			}

			log.success('pngcrush built successfully');
		});
	}

	log.success('pngcrush pre-build test passed successfully');
});
Esempio n. 8
0
bin.run(['-version'], err => {
	if (err) {
		log.warn(err.message);
		log.warn('pngcrush pre-build test failed');
		log.info('compiling from source');

		const builder = new BinBuild()
			.src('https://downloads.sourceforge.net/project/pmt/pngcrush/1.8.13/pngcrush-1.8.13.zip')
			.cmd(`mkdir -p ${bin.dest()}`)
			.cmd(`make && mv ${bin.use()} ${bin.path()}`);

		return builder.run(err => {
			if (err) {
				log.error(err.stack);
				return;
			}

			log.success('pngcrush built successfully');
		});
	}

	log.success('pngcrush pre-build test passed successfully');
});
Esempio n. 9
0
// Check dev dependencies.
if (process.env.NODE_ENV === "development") {
	const flow = require('flow-bin/lib');
	flow.run(['--version'], function (err) {
		if (err) {
			log.error(err.message);
			log.error("ERROR: flow is not properly installed. Run 'rm app/node_modules/flow-bin/vendor/flow; make dep' to fix.");
			return;
		}
	});

	if (process.platform === "darwin") {
		try {
			require("fsevents");
		} catch (error) {
			log.warn("WARNING: fsevents not properly installed. This causes a high CPU load when webpack is idle. Run 'make dep' to fix.");
		}
	}
}

var commonPlugins = [
	new webpack.NormalModuleReplacementPlugin(/\/iconv-loader$/, "node-noop"),
	new webpack.ProvidePlugin({
		fetch: "imports?this=>global!exports?global.fetch!isomorphic-fetch",
	}),
	new webpack.DefinePlugin({
		"process.env": {
			NODE_ENV: JSON.stringify(process.env.NODE_ENV || "development"),
		},
	}),
	new webpack.IgnorePlugin(/testdata\//),