Skip to content
This repository was archived by the owner on Feb 29, 2024. It is now read-only.

Commit 87b7f88

Browse files
author
Dominik Sumer
committed
added buildscript and dependencies
1 parent 1470a7a commit 87b7f88

File tree

4 files changed

+192
-6
lines changed

4 files changed

+192
-6
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
*.iml
22
.idea/
3-
lib/
3+
dist/
44
coverage/
55
node_modules/
66
npm-debug.log*

build.js

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
'use strict';
2+
3+
const fs = require('fs');
4+
const del = require('del');
5+
const rollup = require('rollup');
6+
const babel = require('rollup-plugin-babel');
7+
const uglify = require('rollup-plugin-uglify');
8+
const nodeResolve = require('rollup-plugin-node-resolve');
9+
const commonjs = require('rollup-plugin-commonjs');
10+
const pkg = require('./package.json');
11+
12+
const bundles = [
13+
{
14+
format: 'es', ext: '.js'
15+
},
16+
{
17+
format: 'umd', ext: '.js'
18+
},
19+
{
20+
format: 'umd', ext: '.min.js', minify: true
21+
}
22+
];
23+
24+
let promise = Promise.resolve();
25+
promise = promise.then(() => del(['dist/*']));
26+
27+
for (const config of bundles) {
28+
const plugins = [
29+
nodeResolve(),
30+
commonjs(),
31+
babel({
32+
presets: [
33+
'es2015-rollup',
34+
'react',
35+
'stage-0'
36+
],
37+
plugins: [
38+
['transform-runtime', {polyfill: false, regenerator: true}],
39+
'external-helpers'
40+
],
41+
babelrc: false,
42+
exclude: 'node_modules/**',
43+
runtimeHelpers: true
44+
})
45+
];
46+
if (config.minify) {
47+
plugins.push(uglify());
48+
}
49+
promise = promise.then(() => rollup.rollup({
50+
input: 'src/index.js',
51+
external: Object.keys(pkg.peerDependencies).concat(Object.keys(pkg.devDependencies)),
52+
plugins: plugins
53+
})).then(bundle => bundle.write({
54+
file: `dist/index.${config.format}${config.ext}`,
55+
format: config.format,
56+
sourcemap: !config.minify,
57+
globals: {
58+
react: 'React'
59+
},
60+
name: pkg.name
61+
}));
62+
}
63+
64+
promise.then(() => {
65+
fs.writeFileSync('dist/package.json', JSON.stringify(pkg, null, ' '), 'utf-8');
66+
fs.writeFileSync('dist/README.md', fs.readFileSync('README.md', 'utf-8'), 'utf-8');
67+
fs.writeFileSync('dist/LICENSE', fs.readFileSync('LICENSE', 'utf-8'), 'utf-8');
68+
// TODO: changelog
69+
});
70+
71+
promise.catch(err => console.error(err.stack));

package.json

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
"name": "@cat-react/form",
33
"version": "0.0.1",
44
"description": "A simple yet powerful library which helps creating validated forms in react.",
5-
"main": "lib/index.js",
5+
"main": "dist/index.umd.min.js",
6+
"jsnext:main": "dist/index.es.js",
7+
"module": "dist/index.es.js",
68
"repository": "git@github.com:cat-react/form.git",
79
"author": "Dominik Sumer <dominik.sumer@catalysts.cc>",
810
"license": "MIT",
911
"scripts": {
12+
"build": "node build.js",
1013
"test": "./node_modules/.bin/jest",
1114
"lint": "./node_modules/.bin/eslint src/**/*",
1215
"examples": "./node_modules/.bin/webpack-dev-server --config examples/webpack.config.js --content-base examples --open --hot",
@@ -20,14 +23,17 @@
2023
"babel-eslint": "^7.2.3",
2124
"babel-jest": "^20.0.3",
2225
"babel-loader": "^7.1.2",
26+
"babel-plugin-external-helpers": "^6.22.0",
2327
"babel-plugin-transform-class-properties": "^6.24.1",
2428
"babel-plugin-transform-decorators-legacy": "^1.3.4",
2529
"babel-plugin-transform-runtime": "^6.23.0",
2630
"babel-preset-es2015": "^6.24.1",
31+
"babel-preset-es2015-rollup": "^3.0.0",
2732
"babel-preset-react": "^6.24.1",
2833
"babel-preset-stage-0": "^6.24.1",
2934
"bootstrap": "^3.3.7",
3035
"css-loader": "^0.28.7",
36+
"del": "^3.0.0",
3137
"enzyme": "^2.9.1",
3238
"eslint": "^4.5.0",
3339
"eslint-plugin-react": "^7.3.0",
@@ -37,6 +43,11 @@
3743
"react-router-dom": "^4.2.2",
3844
"react-test-renderer": "^15.6.1",
3945
"replace-in-file": "^2.6.3",
46+
"rollup": "^0.49.3",
47+
"rollup-plugin-babel": "3.0.0",
48+
"rollup-plugin-commonjs": "^8.2.1",
49+
"rollup-plugin-node-resolve": "^3.0.0",
50+
"rollup-plugin-uglify": "^2.0.1",
4051
"style-loader": "^0.18.2",
4152
"url-loader": "^0.5.9",
4253
"webpack": "^3.5.5",

yarn.lock

Lines changed: 108 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -473,6 +473,12 @@ babel-plugin-check-es2015-constants@^6.22.0:
473473
dependencies:
474474
babel-runtime "^6.22.0"
475475

476+
babel-plugin-external-helpers@^6.18.0, babel-plugin-external-helpers@^6.22.0:
477+
version "6.22.0"
478+
resolved "https://registry.yarnpkg.com/babel-plugin-external-helpers/-/babel-plugin-external-helpers-6.22.0.tgz#2285f48b02bd5dede85175caf8c62e86adccefa1"
479+
dependencies:
480+
babel-runtime "^6.22.0"
481+
476482
babel-plugin-istanbul@^4.0.0:
477483
version "4.1.4"
478484
resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.4.tgz#18dde84bf3ce329fddf3f4103fae921456d8e587"
@@ -850,7 +856,15 @@ babel-plugin-transform-strict-mode@^6.24.1:
850856
babel-runtime "^6.22.0"
851857
babel-types "^6.24.1"
852858

853-
babel-preset-es2015@^6.24.1:
859+
babel-preset-es2015-rollup@^3.0.0:
860+
version "3.0.0"
861+
resolved "https://registry.yarnpkg.com/babel-preset-es2015-rollup/-/babel-preset-es2015-rollup-3.0.0.tgz#854b63ecde2ee98cac40e882f67bfcf185b1f24a"
862+
dependencies:
863+
babel-plugin-external-helpers "^6.18.0"
864+
babel-preset-es2015 "^6.3.13"
865+
require-relative "^0.8.7"
866+
867+
babel-preset-es2015@^6.24.1, babel-preset-es2015@^6.3.13:
854868
version "6.24.1"
855869
resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939"
856870
dependencies:
@@ -1077,7 +1091,7 @@ brorand@^1.0.1:
10771091
version "1.1.0"
10781092
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
10791093

1080-
browser-resolve@^1.11.2:
1094+
browser-resolve@^1.11.0, browser-resolve@^1.11.2:
10811095
version "1.11.2"
10821096
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
10831097
dependencies:
@@ -1169,7 +1183,7 @@ buffer@^4.3.0:
11691183
ieee754 "^1.1.4"
11701184
isarray "^1.0.0"
11711185

1172-
builtin-modules@^1.0.0:
1186+
builtin-modules@^1.0.0, builtin-modules@^1.1.0:
11731187
version "1.1.1"
11741188
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
11751189

@@ -1403,6 +1417,10 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
14031417
dependencies:
14041418
delayed-stream "~1.0.0"
14051419

1420+
commander@~2.11.0:
1421+
version "2.11.0"
1422+
resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
1423+
14061424
commondir@^1.0.1:
14071425
version "1.0.1"
14081426
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2121,6 +2139,18 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
21212139
version "4.2.0"
21222140
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
21232141

2142+
estree-walker@^0.2.1:
2143+
version "0.2.1"
2144+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.2.1.tgz#bdafe8095383d8414d5dc2ecf4c9173b6db9412e"
2145+
2146+
estree-walker@^0.3.0:
2147+
version "0.3.1"
2148+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa"
2149+
2150+
estree-walker@^0.5.0:
2151+
version "0.5.0"
2152+
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.0.tgz#aae3b57c42deb8010e349c892462f0e71c5dd1aa"
2153+
21242154
esutils@^2.0.2:
21252155
version "2.0.2"
21262156
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
@@ -2924,6 +2954,10 @@ is-glob@^3.1.0:
29242954
dependencies:
29252955
is-extglob "^2.1.0"
29262956

2957+
is-module@^1.0.0:
2958+
version "1.0.0"
2959+
resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
2960+
29272961
is-number@^2.1.0:
29282962
version "2.1.0"
29292963
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -3587,6 +3621,12 @@ macaddress@^0.2.8:
35873621
version "0.2.8"
35883622
resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12"
35893623

3624+
magic-string@^0.22.4:
3625+
version "0.22.4"
3626+
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff"
3627+
dependencies:
3628+
vlq "^0.2.1"
3629+
35903630
make-dir@^1.0.0:
35913631
version "1.0.0"
35923632
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978"
@@ -4823,6 +4863,10 @@ require-main-filename@^1.0.1:
48234863
version "1.0.1"
48244864
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
48254865

4866+
require-relative@^0.8.7:
4867+
version "0.8.7"
4868+
resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de"
4869+
48264870
require-uncached@^1.0.3:
48274871
version "1.0.3"
48284872
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
@@ -4846,7 +4890,7 @@ resolve@1.1.7:
48464890
version "1.1.7"
48474891
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
48484892

4849-
resolve@^1.3.2:
4893+
resolve@^1.1.6, resolve@^1.3.2, resolve@^1.4.0:
48504894
version "1.4.0"
48514895
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86"
48524896
dependencies:
@@ -4878,6 +4922,55 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
48784922
hash-base "^2.0.0"
48794923
inherits "^2.0.1"
48804924

4925+
rollup-plugin-babel@3.0.0:
4926+
version "3.0.0"
4927+
resolved "https://registry.yarnpkg.com/rollup-plugin-babel/-/rollup-plugin-babel-3.0.0.tgz#b309df407eed78890006cede35b601ea11b773f9"
4928+
dependencies:
4929+
rollup-pluginutils "^1.5.0"
4930+
4931+
rollup-plugin-commonjs@^8.2.1:
4932+
version "8.2.1"
4933+
resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.1.tgz#5e40c78375eb163c14c76bce69da1750e5905a2e"
4934+
dependencies:
4935+
acorn "^5.1.1"
4936+
estree-walker "^0.5.0"
4937+
magic-string "^0.22.4"
4938+
resolve "^1.4.0"
4939+
rollup-pluginutils "^2.0.1"
4940+
4941+
rollup-plugin-node-resolve@^3.0.0:
4942+
version "3.0.0"
4943+
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0"
4944+
dependencies:
4945+
browser-resolve "^1.11.0"
4946+
builtin-modules "^1.1.0"
4947+
is-module "^1.0.0"
4948+
resolve "^1.1.6"
4949+
4950+
rollup-plugin-uglify@^2.0.1:
4951+
version "2.0.1"
4952+
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-2.0.1.tgz#67b37ad1efdafbd83af4c36b40c189ee4866c969"
4953+
dependencies:
4954+
uglify-js "^3.0.9"
4955+
4956+
rollup-pluginutils@^1.5.0:
4957+
version "1.5.2"
4958+
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-1.5.2.tgz#1e156e778f94b7255bfa1b3d0178be8f5c552408"
4959+
dependencies:
4960+
estree-walker "^0.2.1"
4961+
minimatch "^3.0.2"
4962+
4963+
rollup-pluginutils@^2.0.1:
4964+
version "2.0.1"
4965+
resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0"
4966+
dependencies:
4967+
estree-walker "^0.3.0"
4968+
micromatch "^2.3.11"
4969+
4970+
rollup@^0.49.3:
4971+
version "0.49.3"
4972+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.49.3.tgz#4cce32643dd8cf2154c69ff0e43470067db0adbf"
4973+
48814974
run-async@^2.2.0:
48824975
version "2.3.0"
48834976
resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0"
@@ -5423,6 +5516,13 @@ uglify-js@^2.6, uglify-js@^2.8.29:
54235516
optionalDependencies:
54245517
uglify-to-browserify "~1.0.0"
54255518

5519+
uglify-js@^3.0.9:
5520+
version "3.1.0"
5521+
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.0.tgz#92fae17b88dfbc3c394175a935044cdbcf4085ae"
5522+
dependencies:
5523+
commander "~2.11.0"
5524+
source-map "~0.5.1"
5525+
54265526
uglify-to-browserify@~1.0.0:
54275527
version "1.0.2"
54285528
resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
@@ -5534,6 +5634,10 @@ verror@1.10.0:
55345634
core-util-is "1.0.2"
55355635
extsprintf "^1.2.0"
55365636

5637+
vlq@^0.2.1:
5638+
version "0.2.2"
5639+
resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1"
5640+
55375641
vm-browserify@0.0.4:
55385642
version "0.0.4"
55395643
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"

0 commit comments

Comments
 (0)