{"id":18819,"library":"st-start","title":"st-start","description":"An opinionated, zero-configuration TypeScript project bundler & starter for frontend and Node.js, version 2.0.0-beta.48. It wraps webpack and babel with stable plugins to provide fast builds, multi-threaded type checking, HMR, and code splitting. Supports modern CSS (PostCSS, LostGrid, SASS), CSS modules with types, ESM, and auto-polyfilling via Browserslist. Includes ESLint linting, .env support, gzip compression, and an HTML artifact graph analyzer. Differentiates from other bundlers by promising a minimal or no config file, focusing on TypeScript-first workflows, and emphasizing robustness and developer experience with clear error messages and desktop notifications. Released under the MIT license and maintained by the SpringType organization, it is part of a larger ecosystem but remains a standalone tool.","status":"active","version":"2.0.0-beta.48","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","SpringType","bundler","compiler","dev server","CLI","HMR","node bundler","sass"],"install":[{"cmd":"npm install st-start","lang":"bash","label":"npm"},{"cmd":"yarn add st-start","lang":"bash","label":"yarn"},{"cmd":"pnpm add st-start","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core bundler used under the hood; st-start wraps webpack with pre-configured options.","package":"webpack","optional":false},{"reason":"Transpilation of TypeScript and JavaScript; relies on babel for backwards compatibility.","package":"babel","optional":false},{"reason":"TypeScript compilation and type checking are core to the bundler; must be installed.","package":"typescript","optional":false}],"imports":[{"note":"st-start is a CLI tool; it should be invoked via `npx st-start` or as a script in package.json. Do not try to import it directly in code.","wrong":"import st-start from 'st-start'","symbol":"st-start (CLI)","correct":"npx st-start"},{"note":"Since version 2, st-start is ESM-first. Use named imports from the package if you need config types.","wrong":"const BuildConfig = require('st-start').BuildConfig","symbol":"BuildConfig","correct":"import { BuildConfig } from 'st-start'"},{"note":"The configuration file must be a CommonJS module (module.exports). ESM is not supported for st.config.js.","wrong":"export default { /* config */ }","symbol":"st.config.js","correct":"module.exports = { /* config */ }"}],"quickstart":{"code":"// 1. Install st-start as a dev dependency\nnpm install -D st-start\n\n// 2. Add scripts to package.json\n{\n  \"scripts\": {\n    \"start\": \"st-start\",\n    \"build\": \"st-start -env production\"\n  }\n}\n\n// 3. Create src/index.html as entry HTML\n// <!DOCTYPE html>\n// <html>\n// <head><title>My App</title></head>\n// <body><div id=\"root\"></div></body>\n// </html>\n\n// 4. Create src/index.tsx as entry TypeScript\n// import React from 'react';\n// import ReactDOM from 'react-dom';\n// ReactDOM.render(<h1>Hello World</h1>, document.getElementById('root'));\n\n// 5. Run the start script\nnpm run start","lang":"javascript","description":"Sets up a new project with st-start: installs the bundler, creates package.json scripts, and shows minimal entry files (HTML and TSX) to get a dev server running."},"warnings":[{"fix":"Refer to the v2 documentation and update your st.config.js accordingly. Run `st-start -h` to see current CLI options.","message":"st-start v2 is a complete rewrite over v1. Configuration options and CLI flags may have changed.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use `module.exports = { ... }` instead of `export default { ... }`.","message":"ESM syntax in st.config.js is not supported; only CommonJS module.exports works.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use `npx st-start` or run via npm scripts. Do not `import st-start` in your code.","message":"st-start does not support direct import/require of its internals. The package is a CLI tool; use it via command line, not as a library.","severity":"gotcha","affected_versions":"*"},{"fix":"Avoid custom webpack configs; rely on st-start's configuration options (st.config.js). If you need deep customization, consider using webpack directly.","message":"The bundler uses webpack under the hood; advanced webpack customizations might conflict with st-start's presets.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Ensure `npm install -D st-start` is run. Use `npx st-start` to execute CLI, not a require/import.","cause":"st-start is not installed or not in node_modules, or you tried to import it in code instead of running CLI.","error":"Cannot find module 'st-start'"},{"fix":"st-start only supports TypeScript, JavaScript, CSS, SASS, and images. For other file types, you may need to extend the webpack config manually.","cause":"st-start does not include a loader for certain file types (e.g., .vue, .svelte).","error":"You may need an appropriate loader to handle this file type"},{"fix":"Ensure `tsconfig.json` has `\"module\": \"ESNext\"` for st-start's dynamic imports to work, or adjust your project structure.","cause":"Your tsconfig.json may not have 'module' set to 'ESNext' or 'CommonJS', or the file is not treated as a module.","error":"TypeScript: Cannot use import statement outside a module"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}