UNPKG

2 kBJavaScriptView Raw
1const Fs = require('fs');
2const Util = require('util');
3const Rollup = require('rollup');
4const Package = require('./package');
5const Babel = require('@babel/core');
6
7// const ReadFile = Util.promisify(Fs.readFile);
8const WriteFile = Util.promisify(Fs.writeFile);
9
10const header = `/*
11 Name: ${Package.name}
12 Version: ${Package.version}
13 License: ${Package.license}
14 Author: ${Package.author}
15 Email: ${Package.email}
16 This Source Code Form is subject to the terms of the Mozilla Public
17 License, v. 2.0. If a copy of the MPL was not distributed with this
18 file, You can obtain one at http://mozilla.org/MPL/2.0/.
19*/
20`;
21
22(async function () {
23
24 const output = process.argv.slice(2)[0];
25
26 if (!output) return console.error('build output path required');
27
28 const bundled = await Rollup.rollup({ input: 'src/index.js' });
29
30 const generated = await bundled.generate({
31 name: 'Oxe',
32 indent: '\t',
33 // format: 'esm',
34 format: 'umd',
35 treeshake: true
36 });
37
38 const code = generated.output[0].code;
39
40 const options = {
41 moduleId: 'Oxe',
42 comments: false,
43 sourceMaps: false,
44 plugins: [
45 [ 'module:fast-async', {
46 spec: true
47 } ]
48 ],
49 presets: [
50 [ '@babel/preset-env', {
51 modules: false,
52 targets: { ie: '11' },
53 exclude: [
54 'transform-regenerator',
55 'transform-async-to-generator',
56 'proposal-async-generator-functions'
57 ]
58 } ]
59 ]
60 };
61
62 const dev = Babel.transform(code, options);
63
64 options.minified = true;
65
66 const dst = Babel.transform(code, options);
67
68 await Promise.all([
69 await WriteFile(`./${output}/oxe.js`, header + dev.code),
70 await WriteFile(`./${output}/oxe.min.js`, header + dst.code),
71 await WriteFile('./web/assets/oxe.js', header + dev.code)
72 ]);
73
74}()).catch(console.error);