@pyoner/svelte-ts-preprocess
TypeScript icon, indicating that this package has built-in type declarations

1.3.0 • Public • Published

Typescript preprocessor for Svelte 3

Install

npm i @pyoner/svelte-ts-preprocess

Rollup config

import svelte from "rollup-plugin-svelte";
import resolve from "rollup-plugin-node-resolve";
import commonjs from "rollup-plugin-commonjs";
import { terser } from "rollup-plugin-terser";
import typescript from "rollup-plugin-typescript2";

import {
  preprocess,
  createEnv,
  readConfigFile
} from "@pyoner/svelte-ts-preprocess";

const production = !process.env.ROLLUP_WATCH;

const env = createEnv();
const compilerOptions = readConfigFile(env);
const opts = {
  env,
  compilerOptions: {
    ...compilerOptions,
    allowNonTsExtensions: true
  }
};

export default {
  input: "src/main.js",
  output: {
    sourcemap: true,
    format: "iife",
    name: "app",
    file: "public/bundle.js"
  },
  plugins: [
    svelte({
      // enable run-time checks when not in production
      dev: !production,
      // we'll extract any component CSS out into
      // a separate file — better for performance
      css: css => {
        css.write("public/bundle.css");
      },
      preprocess: preprocess(opts)
    }),

    // If you have external dependencies installed from
    // npm, you'll most likely need these plugins. In
    // some cases you'll need additional configuration —
    // consult the documentation for details:
    // https://github.com/rollup/rollup-plugin-commonjs
    resolve(),
    commonjs(),
    typescript(),

    // If we're building for production (npm run build
    // instead of npm run dev), minify
    production && terser()
  ]
};

Package Sidebar

Install

npm i @pyoner/svelte-ts-preprocess

Weekly Downloads

64

Version

1.3.0

License

MIT

Unpacked Size

19.9 kB

Total Files

6

Last publish

Collaborators

  • pyoner