import path from 'path'; import nodeResolve from 'rollup-plugin-node-resolve'; import commonjs from 'rollup-plugin-commonjs'; import json from 'rollup-plugin-json'; import typescript from 'rollup-plugin-typescript'; import buble from 'rollup-plugin-buble'; const src = path.resolve('src'); export default [ /* compiler/svelte.js */ { entry: 'src/index.ts', dest: 'compiler/svelte.js', format: 'umd', moduleName: 'svelte', plugins: [ { resolveId(importee, importer) { // bit of a hack — TypeScript only really works if it can resolve imports, // but they misguidedly chose to reject imports with file extensions. This // means we need to resolve them here if ( importer && importer.startsWith(src) && importee[0] === '.' && path.extname(importee) === '' ) { return path.resolve(path.dirname(importer), `${importee}.ts`); } } }, nodeResolve({ jsnext: true, module: true }), commonjs(), json(), typescript({ include: 'src/**', exclude: 'src/shared/**', typescript: require('typescript') }) ], sourceMap: true }, /* ssr/register.js */ { entry: 'src/server-side-rendering/register.js', dest: 'ssr/register.js', format: 'cjs', plugins: [ nodeResolve({ jsnext: true, module: true }), commonjs(), buble({ include: 'src/**', exclude: 'src/shared/**', target: { node: 4 } }) ], external: [path.resolve('src/index.ts'), 'fs', 'path'], paths: { [path.resolve('src/index.ts')]: '../compiler/svelte.js' }, sourceMap: true }, /* shared.js */ { entry: 'src/shared/index.js', dest: 'shared.js', format: 'es' } ];