Skip to content

Commit f80082b

Browse files
committedOct 9, 2015
[fixed] bower building and publishing
1 parent c182385 commit f80082b

File tree

2 files changed

+76
-1
lines changed

2 files changed

+76
-1
lines changed
 

‎package.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
"main": "./lib/index.js",
66
"scripts": {
77
"prepublish": "npm run build",
8-
"build": "babel src --out-dir=lib && webpack && webpack -p",
8+
"build": "babel src --out-dir=lib && webpack && webpack -p && npm run bower-prepare",
99
"test": "npm run lint && karma start --single-run",
1010
"tdd": "karma start",
1111
"visual-test": "open http://localhost:8080/ && webpack-dev-server --config webpack.visual.config.babel.js",
1212
"lint": "eslint *.babel.js src tests",
13+
"bower-prepare": "babel-node scripts/bower-prepare.js",
1314
"release": "release"
1415
},
1516
"repository": {
@@ -40,6 +41,7 @@
4041
"babel-eslint": "^4.1.3",
4142
"babel-loader": "^5.3.2",
4243
"bootstrap": "^3.3.5",
44+
"colors": "^1.1.2",
4345
"css-loader": "^0.19.0",
4446
"es5-shim": "^4.1.14",
4547
"eslint": "1.6.x",
@@ -60,6 +62,7 @@
6062
"karma-webpack": "^1.7.0",
6163
"less": "^2.5.3",
6264
"less-loader": "^2.2.1",
65+
"lodash": "^3.10.1",
6366
"mocha": "^2.3.3",
6467
"mt-changelog": "^0.6.2",
6568
"node-libs-browser": "^0.5.3",
@@ -69,6 +72,8 @@
6972
"react-dom": "^0.14.0",
7073
"react-router": "^1.0.0-rc3",
7174
"release-script": "^0.5.3",
75+
"rimraf": "^2.4.3",
76+
"shelljs": "^0.5.3",
7277
"style-loader": "^0.12.4",
7378
"url-loader": "^0.5.6",
7479
"webpack": "^1.12.2",

‎scripts/bower-prepare.js

+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/* globals cat, config, cp, mkdir, rm, test */
2+
/* eslint curly: 0 */
3+
import 'colors';
4+
import 'shelljs/global';
5+
import path from 'path';
6+
import _ from 'lodash';
7+
import yargs from 'yargs';
8+
9+
// do not die on errors
10+
config.fatal = false;
11+
12+
//------------------------------------------------------------------------------
13+
// constants
14+
const repoRoot = path.resolve(__dirname, '../');
15+
const libFolder = path.join(repoRoot, 'lib');
16+
const bowerRoot = path.join(repoRoot, 'amd');
17+
const bowerTemplate = path.join(repoRoot, 'bower.template.json');
18+
const license = path.join(repoRoot, 'LICENSE');
19+
20+
21+
//------------------------------------------------------------------------------
22+
// command line options
23+
const argv = yargs
24+
.usage('Usage: $0 [--verbose]')
25+
.example('$0', 'Prepare bower package for releasing')
26+
.option('verbose', {
27+
demand: false,
28+
default: false,
29+
describe: 'Increased debug output'
30+
})
31+
.argv;
32+
33+
if (argv.dryRun) console.log('DRY RUN'.magenta);
34+
35+
config.silent = !argv.verbose;
36+
37+
38+
//------------------------------------------------------------------------------
39+
// functions
40+
function bower() {
41+
console.log('Creating: '.cyan + 'bower package'.green);
42+
43+
rm('-rf', bowerRoot);
44+
mkdir('-p', bowerRoot);
45+
46+
// generate bower.json from template
47+
const pkg = JSON.parse(cat(path.join(repoRoot, 'package.json')));
48+
const template = _.template(cat(bowerTemplate));
49+
const bowerConfigObject = template({ pkg });
50+
const json = JSON.stringify(JSON.parse(bowerConfigObject), null, 2); // proper formatting hack
51+
json.to(path.join(bowerRoot, 'bower.json'));
52+
53+
// copy readme and license
54+
const readmeBower = path.join(repoRoot, 'README.bower.md');
55+
const readme = path.join(repoRoot, 'README.md');
56+
if (test('-e', readmeBower)) {
57+
cp(readmeBower, path.join(bowerRoot, 'README.md'));
58+
} else {
59+
cp(readme, bowerRoot);
60+
}
61+
if (test('-e', license)) cp(license, bowerRoot);
62+
63+
// copy distr files
64+
cp('-r', libFolder, bowerRoot);
65+
66+
console.log('Created: '.cyan + 'bower package'.green);
67+
}
68+
69+
//------------------------------------------------------------------------------
70+
bower();

0 commit comments

Comments
 (0)
Please sign in to comment.