{"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,"search_vec":"'0.1.7':24 'adopt':79 'allow':61 'appear':30 'base':13 'build':54 'build-tim':53 'caution':82 'condit':4,10 'convent':19 'current':27 'currentenv':76 'defin':74 'develop':29 'dynam':41 'e.g':20 'earli':34 'ecosystem':78 'environ':15,56,69 'file':17 'foo.client.js':21 'foo.server.js':22 'import':5,11,42,51,66 'inspir':45 'iso':50 'javascript':85 'limit':77 'manual':71 'modul':12 'name':18 'per':68 'plugin':3,8,49,60 'product':84 'releas':28 'requir':70 'setup':72 'shake':64 'split':67 'stage':35 'static':39 'substitut':58 'support':37 'time':55 'tree':63 'tree-shak':62 'typescript':86 'unlik':52 'use':16,80 'variabl':57 'version':23 'vite':2,7,48 'vite-plugin-conditional-import':1 'vite-plugin-iso-import':47","created_at":"2026-04-27T17:06:08.106841+00:00","updated_at":"2026-04-27T17:06:08.106841+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/axetroy/vite-plugin-conditional-import","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/vite-plugin-conditional-import","openapi_spec":null,"status_page":null,"smithery":null,"categories":["web-framework","devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-18","next_check":"2026-07-26","install_tag":null}}