From 56f4ae4406fffc924eb2af10cd2ca83e84fa33ad Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Mon, 8 Feb 2016 20:12:04 +0000 Subject: [PATCH] refactor bundle scripts --- package.json | 8 ++++---- scripts/bundle | 30 ++++++++++++++++++++++++++++++ scripts/info | 10 ++++++++++ scripts/version | 9 --------- 4 files changed, 44 insertions(+), 13 deletions(-) create mode 100755 scripts/bundle create mode 100755 scripts/info delete mode 100755 scripts/version diff --git a/package.json b/package.json index fa13469..3c0340d 100644 --- a/package.json +++ b/package.json @@ -16,11 +16,11 @@ "test-fast": "AJV_FAST_TEST=true npm run test-spec", "test-debug": "mocha spec/*.spec.js --debug-brk -R spec", "test-cov": "istanbul cover -x '**/spec/**' node_modules/mocha/bin/_mocha -- spec/*.spec.js -R spec", - "bundle": "mkdir -p dist && browserify -r ./lib/ajv.js:ajv -o dist/ajv.bundle.js -s Ajv && uglifyjs dist/ajv.bundle.js -o dist/ajv.min.js -c pure_getters -m --source-map dist/ajv.min.js.map -r Ajv --preamble \"/* Ajv JSON-schema validator $(./scripts/version) */\"", - "bundle-regenerator": "mkdir -p dist && browserify -r ./node_modules/regenerator/main.js:regenerator -o dist/regenerator.bundle.js && uglifyjs dist/regenerator.bundle.js -o dist/regenerator.min.js -c -m --source-map dist/regenerator.min.js.map --preamble \"/* regenerator $(./scripts/version regenerator) */\"", - "bundle-nodent": "mkdir -p dist && browserify -r ./node_modules/nodent/nodent.js:nodent -o dist/nodent.bundle.js && uglifyjs dist/nodent.bundle.js -o dist/nodent.min.js -c -m --source-map dist/nodent.min.js.map --preamble \"/* nodent $(./scripts/version nodent) */\"", - "bundle-beautify": "mkdir -p dist && browserify -r ./node_modules/js-beautify/js/index.js:js-beautify -o dist/js-beautify.bundle.js && uglifyjs dist/js-beautify.bundle.js -o dist/js-beautify.min.js -c -m --source-map dist/js-beautify.min.js.map --preamble \"/* js-beautify $(./scripts/version js-beautify) */\"", + "bundle": "./scripts/bundle . Ajv pure_getters", + "bundle-regenerator": "./scripts/bundle regenerator", + "bundle-nodent": "./scripts/bundle nodent", "bundle-all": "npm run bundle && npm run bundle-regenerator && npm run bundle-nodent", + "bundle-beautify": "./scripts/bundle js-beautify", "build": "node scripts/compile-dots.js", "test-browser": "npm run bundle-all && scripts/prepare-tests && karma start --single-run --browsers PhantomJS", "test": "npm run jshint && npm run eslint && npm run build && npm run test-cov && npm run test-browser", diff --git a/scripts/bundle b/scripts/bundle new file mode 100755 index 0000000..ae1222c --- /dev/null +++ b/scripts/bundle @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +set -e + +package=$1 +standalone=$2 +compress=$3 + +name=$(./scripts/info $package name) +main=$(./scripts/info $package main) +version=$(./scripts/info $package version) +description=$(./scripts/info $package description) + +if [ "$package" != "." ]; then + package="./node_modules/$package" +fi + +mkdir -p dist + +browserify -r "$package/$main:$name" \ + -o "dist/$name.bundle.js" \ + $([ -n "$standalone" ] && echo "-s $standalone") + +uglifyjs dist/$name.bundle.js \ + -o dist/$name.min.js \ + -c $compress \ + -m \ + --source-map dist/$name.min.js.map \ + $([ -n "$standalone" ] && echo "-r $standalone") \ + --preamble "/* $name $version: $description */" diff --git a/scripts/info b/scripts/info new file mode 100755 index 0000000..77269ab --- /dev/null +++ b/scripts/info @@ -0,0 +1,10 @@ +#!/usr/bin/env node + +'use strict'; + +var fs = require('fs'); +var name = process.argv[2] || '.'; +var property = process.argv[3] || 'version'; +if (name != '.') name = 'node_modules/' + name; +var json = JSON.parse(fs.readFileSync(name + '/package.json', 'utf8')); +console.log(json[property]); diff --git a/scripts/version b/scripts/version deleted file mode 100755 index 7c627d2..0000000 --- a/scripts/version +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env node - -'use strict'; - -var fs = require('fs'); -var name = process.argv[2]; -name = name ? 'node_modules/' + name : '.'; -var json = JSON.parse(fs.readFileSync(name + '/package.json', 'utf8')); -console.log(json.version);