{"id":25200,"library":"electron-snowpack","title":"Electron Snowpack","description":"Effective Electron app development toolchain combining Snowpack's fast dev server with esbuild for main process compilation. Current stable version is 0.13.0 (April 2022). Integrates .env variable support, TypeScript config presets, electron-builder config, and HMR for renderer via Snowpack. Differentiator: unified configuration for both main and renderer processes, leveraging Snowpack's plugin ecosystem and esbuild's speed for main process TypeScript builds. Requires Electron as peer dependency. Released under MIT license.","status":"active","version":"0.13.0","language":"javascript","source_language":"en","source_url":"https://github.com/karolis-sh/electron-snowpack","tags":["javascript","electron","snowpack","esbuild"],"install":[{"cmd":"npm install electron-snowpack","lang":"bash","label":"npm"},{"cmd":"yarn add electron-snowpack","lang":"bash","label":"yarn"},{"cmd":"pnpm add electron-snowpack","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency required for Electron app runtime.","package":"electron","optional":false}],"imports":[{"note":"Configs are extended in config files (e.g., snowpack.config.js), not imported in source code.","wrong":"require('electron-snowpack/config/snowpack')","symbol":"electron-snowpack configs","correct":"extends: 'electron-snowpack/config/snowpack.js'"},{"note":"Use JSON string, not a JavaScript expression. Must be placed in tsconfig.json.","wrong":"extends: 'electron-snowpack/config/tsconfig'","symbol":"tsconfig extension","correct":"\"extends\": \"electron-snowpack/config/tsconfig.json\""},{"note":"Extends electron-builder configuration in package.json build field.","wrong":"require('electron-snowpack/config/electron-builder')","symbol":"electron-builder config","correct":"{\n  \"build\": {\n    \"extends\": \"electron-snowpack/config/electron-builder.js\"\n  }\n}"}],"quickstart":{"code":"// In package.json:\n{\n  \"main\": \"src/main/index.ts\",\n  \"scripts\": {\n    \"dev\": \"electron-snowpack dev\",\n    \"build\": \"electron-snowpack build\",\n    \"start\": \"electron .\"\n  },\n  \"devDependencies\": {\n    \"electron\": \"^20.0.0\",\n    \"electron-snowpack\": \"^0.13.0\"\n  }\n}\n\n// src/main/index.ts:\nimport { app, BrowserWindow } from 'electron';\nimport path from 'path';\n\napp.whenReady().then(() => {\n  const win = new BrowserWindow({\n    width: 800,\n    height: 600,\n    webPreferences: {\n      nodeIntegration: false,\n      contextIsolation: true,\n      preload: path.join(__dirname, 'preload.js'),\n    },\n  });\n  if (process.env.NODE_ENV === 'development') {\n    win.loadURL('http://localhost:8080');\n  } else {\n    win.loadFile(path.join(__dirname, '..', 'renderer', 'index.html'));\n  }\n});\n\n// snowpack.config.js:\nmodule.exports = {\n  extends: 'electron-snowpack/config/snowpack.js',\n};\n\n// tsconfig.json (if using TypeScript):\n{\n  \"extends\": \"electron-snowpack/config/tsconfig.json\",\n  \"include\": [\"src\"]\n}\n\n// Run:\n// $ npm run dev","lang":"typescript","description":"Sets up a basic Electron app with Snowpack and esbuild for dev and build, including TypeScript configs and dev server URL."},"warnings":[{"fix":"Ensure React version meets requirement and check Snowpack docs for HMR setup.","message":"React Fast Refresh requires React 16.9+ and must be enabled in Snowpack config.","severity":"breaking","affected_versions":">=0.9.0"},{"fix":"Use SNOWPACK_PUBLIC_ prefix for public renderer variables; see Snowpack env vars docs.","message":"Environment variables prefixed with SNOWPACK_PUBLIC_ are available in renderer; all SNOWPACK_* are available in main.","severity":"gotcha","affected_versions":"*"},{"fix":"Consider migrating to electron-vite or Vite-based alternatives for ongoing support.","message":"The package has not been updated since April 2022; Snowpack has been deprecated in favor of Vite.","severity":"deprecated","affected_versions":"0.13.0"},{"fix":"Update to >=0.12.2 or manually resolve asset paths using path.join.","message":"Windows resource loading may fail with incorrect paths, fixed in 0.12.2.","severity":"gotcha","affected_versions":"<0.12.2"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Install electron-snowpack: npm install electron-snowpack --save-dev, and ensure extends string is exactly 'electron-snowpack/config/snowpack.js'.","cause":"electron-snowpack not installed or incorrect path in extends.","error":"Error: Cannot find module 'electron-snowpack/config/snowpack.js'"},{"fix":"Use win.loadURL('http://localhost:8080') instead of mis-capitalized or missing instance.","cause":"Incorrect usage of Electron API; loadURL is a method of BrowserWindow instance.","error":"TypeError: win.loadURL is not a function"},{"fix":"Set 'main' in package.json to your compiled main entry (e.g., 'build/main/index.js') or use source file with Snowpack build.","cause":"Package.json 'main' field points to non-existent file or incorrect path.","error":"Electron-Snowpack: Failed to resolve main entry file"},{"fix":"Use dynamic import() or set type: 'module' in package.json, and import configs via extends string.","cause":"electron-snowpack is ESM-only; cannot be required() from CJS context.","error":"Error: Must use import to load ES Module: electron-snowpack"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}