Skip to content

Commit bec3b3f

Browse files
mjc1283jordangarcia
authored andcommitted
Build scripts for js-web-sdk (#7)
1 parent 35ddc8e commit bec3b3f

File tree

7 files changed

+448
-51
lines changed

7 files changed

+448
-51
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
dist
22
coverage
33
.nyc_output
4+
.rpt2_cache

packages/js-web-sdk/packages/js-web-sdk/package.json

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
"author": "Jordan Garcia <jordan@optimizely.com>",
66
"homepage": "",
77
"license": "ISC",
8-
"main": "lib/index.js",
8+
"main": "dist/js-web-sdk.js",
9+
"module": "dist/js-web-sdk.mjs",
910
"typings": "lib/index.d.ts",
1011
"directories": {
1112
"lib": "lib",
@@ -15,7 +16,7 @@
1516
"tsc": "tsc",
1617
"test": "karma start karma.conf.js --single-run",
1718
"test:watch": "karma start karma.conf.js",
18-
"build-browser-umd": "rm -rf dist && webpack",
19+
"build": "rm -rf dist/ && node ./scripts/build.js",
1920
"cover": "nyc mocha test/**",
2021
"coveralls": "npm run cover -- --report lcovonly && cat ./coverage/lcov.info | coveralls",
2122
"prepublishOnly": "npm run build-browser-umd && npm test && npm run test-xbrowser"
@@ -38,6 +39,12 @@
3839
"mocha-lcov-reporter": "^1.3.0",
3940
"nyc": "^13.1.0",
4041
"puppeteer": "^1.11.0",
42+
"rollup": "^1.1.2",
43+
"rollup-plugin-commonjs": "^9.2.0",
44+
"rollup-plugin-node-resolve": "^4.0.0",
45+
"rollup-plugin-replace": "^2.1.0",
46+
"rollup-plugin-typescript2": "^0.19.2",
47+
"rollup-plugin-uglify": "^6.0.1",
4148
"sinon": "^7.2.3",
4249
"ts-loader": "^5.3.3",
4350
"typescript": "^3.1.6",
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
const fs = require("fs");
2+
const path = require("path");
3+
const execSync = require("child_process").execSync;
4+
5+
process.chdir(path.resolve(__dirname, ".."));
6+
7+
function exec(command, extraEnv) {
8+
return execSync(command, {
9+
stdio: "inherit",
10+
env: Object.assign({}, process.env, extraEnv)
11+
});
12+
}
13+
14+
const packageName = 'js-web-sdk';
15+
const umdName = 'jsWebSdk'
16+
17+
console.log("\nBuilding ES modules...");
18+
19+
exec(`./node_modules/.bin/rollup -c scripts/config.js -f es -o dist/${packageName}.mjs`);
20+
21+
console.log("\nBuilding CommonJS modules...");
22+
23+
exec(`./node_modules/.bin/rollup -c scripts/config.js -f cjs -o dist/${packageName}.js`);
24+
25+
console.log("\nBuilding UMD modules...");
26+
27+
28+
exec(
29+
`./node_modules/.bin/rollup -c scripts/config.js -f umd -n ${umdName} -o dist/${packageName}.browser.umd.js`,
30+
{
31+
EXTERNALS: "peers",
32+
BUILD_ENV: "development"
33+
}
34+
);
35+
36+
exec(
37+
`./node_modules/.bin/rollup -c scripts/config.js -f umd -n ${umdName} -o dist/${packageName}.browser.umd.min.js`,
38+
{
39+
EXTERNALS: "peers",
40+
BUILD_ENV: "production"
41+
}
42+
);
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
const typescript = require("rollup-plugin-typescript2");
2+
const commonjs = require("rollup-plugin-commonjs");
3+
const replace = require("rollup-plugin-replace");
4+
const resolve = require("rollup-plugin-node-resolve");
5+
const { uglify } = require("rollup-plugin-uglify");
6+
7+
const packageDeps = require("../package.json").dependencies || {};
8+
const packagePeers = require("../package.json").peerDependencies || {};
9+
10+
function getExternals(externals) {
11+
return externals === "peers"
12+
? Object.keys(packagePeers)
13+
: Object.keys(packageDeps).concat(Object.keys(packagePeers));
14+
}
15+
16+
function getPlugins(env) {
17+
const plugins = [resolve({ browser: true })];
18+
19+
if (env) {
20+
plugins.push(
21+
replace({
22+
"process.env.NODE_ENV": JSON.stringify(env)
23+
})
24+
);
25+
}
26+
27+
plugins.push(
28+
typescript(),
29+
commonjs({
30+
include: /node_modules/
31+
})
32+
);
33+
34+
if (env === "production") {
35+
plugins.push(uglify());
36+
}
37+
38+
return plugins;
39+
}
40+
41+
const config = {
42+
input: "src/index.ts",
43+
external: getExternals(process.env.EXTERNALS),
44+
plugins: getPlugins(process.env.BUILD_ENV)
45+
};
46+
47+
module.exports = config;

packages/js-web-sdk/packages/js-web-sdk/tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"extends": "../../tsconfig.json",
33
"compilerOptions": {
4+
"module": "ES2015",
45
"outDir": "./lib"
56
},
67
"include": [

packages/js-web-sdk/packages/js-web-sdk/webpack.config.js

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)