{"id":22619,"library":"vite-plugin-conditional-import","title":"vite-plugin-conditional-import","description":"A Vite plugin for conditionally importing modules based on environment, using file naming conventions (e.g., foo.client.js, foo.server.js). Version 0.1.7 is the current release; development appears to be in early stages. It supports both static and dynamic imports, and is inspired by vite-plugin-iso-import. Unlike build-time environment variable substitution, this plugin allows tree-shaking and import splitting per environment. Requires manual setup of define and currentEnv. Limited ecosystem adoption; use with caution for production.","status":"active","version":"0.1.7","language":"javascript","source_language":"en","source_url":"https://github.com/axetroy/vite-plugin-conditional-import","tags":["javascript","typescript"],"install":[{"cmd":"npm install vite-plugin-conditional-import","lang":"bash","label":"npm"},{"cmd":"yarn add vite-plugin-conditional-import","lang":"bash","label":"yarn"},{"cmd":"pnpm add vite-plugin-conditional-import","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only; CJS require will fail. Plugin is default-exported.","wrong":"const conditionalImportPlugin = require('vite-plugin-conditional-import')","symbol":"default export","correct":"import conditionalImportPlugin from 'vite-plugin-conditional-import'"},{"note":"Type imports are available for TypeScript users, but the symbol is the default export, not named.","wrong":"import { conditionalImportPlugin } from 'vite-plugin-conditional-import'","symbol":"conditionalImportPlugin (as type)","correct":"import type conditionalImportPlugin from 'vite-plugin-conditional-import'"},{"note":"Options type is named export; use type import for TypeScript.","wrong":"import { PluginOptions } from 'vite-plugin-conditional-import'","symbol":"PluginOptions","correct":"import type { PluginOptions } from 'vite-plugin-conditional-import'"}],"quickstart":{"code":"import { defineConfig } from 'vite';\nimport conditionalImportPlugin from 'vite-plugin-conditional-import';\n\nconst isClient = process.env.IS_CLIENT === 'true';\n\nexport default defineConfig({\n  define: {\n    'import.meta.env.IS_CLIENT': isClient ? 'true' : 'false',\n    'import.meta.env.IS_SERVER': isClient ? 'false' : 'true',\n  },\n  plugins: [\n    conditionalImportPlugin({\n      currentEnv: isClient ? 'client' : 'server',\n      envs: ['client', 'server'],\n    }),\n  ],\n});","lang":"typescript","description":"Shows Vite config setup with environment variables and the plugin, enabling conditional imports based on client/server environment."},"warnings":[{"fix":"Test thoroughly; consider alternatives like vite-plugin-conditional-compile.","message":"Plugin may not work with SSR or Vite 5+ due to outdated internal API usage.","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Ensure filename uses lowercase env strings (e.g., foo.client.js, not foo.Client.js).","message":"File naming must match pattern `filename.env.js` exactly; environment names are case-sensitive.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Always pair plugin's currentEnv with corresponding define entries matching import.meta.env.* names.","message":"The `define` block must declare the same environment variables used in source code; missing definitions cause runtime errors.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Monitor repository for activity; consider forking or using alternative plugins.","message":"No recent updates; package may be considered unmaintained.","severity":"deprecated","affected_versions":">=0.1.7"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Ensure `envs` includes all environments used in filenames: envs: ['client', 'server'].","cause":"Missing 'client' in `envs` array or typo in environment name.","error":"Error: The environment 'client' is not defined in the plugin options."},{"fix":"Verify the file exists at the correct path and the naming convention is strict (e.g., foo.client.js).","cause":"File does not exist or path is incorrect relative to import statement.","error":"[vite] Internal server error: Cannot find module './foo.client.js'"},{"fix":"Change to `import conditionalImportPlugin from 'vite-plugin-conditional-import'`.","cause":"Using `require` instead of `import` (ESM-only package).","error":"TypeError: conditionalImportPlugin is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}