forked from sveltejs/svelte-hackernews
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.js
36 lines (31 loc) · 848 Bytes
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const fs = require( 'fs' );
const path = require( 'path' );
const rollup = require( 'rollup' );
const svelte = require( 'rollup-plugin-svelte' );
function mkdirp ( dir ) {
const parent = path.dirname( dir );
if ( parent === dir ) return;
mkdirp( parent );
try {
fs.mkdirSync( dir );
} catch ( err ) {
if ( err.code !== 'EEXIST' ) throw err;
}
}
// generate bundles for each route, plus the nav
[ 'routes/List', 'routes/Item', 'routes/User', 'routes/About', 'components/Nav' ].forEach( entry => {
rollup.rollup({
entry: `${__dirname}/shared/${entry}.html`,
plugins: [
svelte({
generate: 'ssr',
css: false
})
]
}).then( bundle => {
const { code } = bundle.generate({ format: 'cjs' });
const dest = `${__dirname}/server/${entry}.js`;
mkdirp( path.dirname( dest ) );
fs.writeFileSync( dest, code );
});
});