gia-cli
Version:
Guardian US Interactive CLI tool
65 lines (54 loc) • 1.6 kB
JavaScript
/*global require, module */
const path = require( 'path' );
const gobble = require( 'gobble' );
const gia = require( './giafile' );
const deploy = gobble.env() === 'production';
const baseUrl = deploy ? `https://interactive.guim.co.uk/${gia.path}` : '';
const version = `v/${deploy ? Date.now() : 'dev'}`;
const replacements = { baseUrl, version };
const external = Object.keys( require( './package.json' ).dependencies )
.filter( name => {
const pkg = require( `${name}/package.json` );
return !pkg[ 'jsnext:main' ] && !pkg[ 'module' ];
});
module.exports = gobble([
// index.html
gobble( 'src/index.html' ),
// non-bundled dependencies
gobble([
gobble( 'node_modules/ractive/ractive.runtime.js' )
]).moveTo( path.join( version, 'lib' ) ),
// boot.js
gobble( 'src/boot.js' )
.transform( 'replace', replacements )
.transform( 'rollup', {
entry: 'boot.js',
dest: 'boot.js',
format: 'amd',
plugins: [ require( 'rollup-plugin-buble' )() ]
}),
// app
gobble( 'src/app' )
.transform( 'replace', replacements )
.transform( 'rollup', {
entry: 'app.js',
format: 'amd',
sourceMap: true,
external,
plugins: [
require( 'rollup-plugin-json' )(),
require( 'rollup-plugin-node-resolve' )({
jsnext: true,
skip: external
}),
require( 'rollup-plugin-ractive' )(),
require( 'rollup-plugin-buble' )()
],
paths: {
ractive: `${baseUrl}/${version}/lib/ractive.runtime.js`
}
})
.moveTo( `${version}/js` ),
// files
gobble( 'src/files' ).moveTo( path.join( version, 'files' ) )
]).transformIf( deploy, 'uglifyjs' );