You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vite项目中执行含特殊导入的TypeScript脚本?

解决Vite项目中含特殊插件导入的TypeScript脚本执行问题

针对你遇到的——Vite项目里的TS脚本用了插件注入的特殊导入(如$env/private/static、$app/environment),ts-node无法解析、打包繁琐、vitest临时执行不稳定的问题,给你三个实用方案:

方案一:用vite-node直接执行(最简便)

vite-node是Vite官方提供的工具,会自动加载项目的Vite配置,支持解析插件注入的特殊导入路径,完全适配你的场景:

  1. 安装依赖:
    npm install -D vite-node
    
  2. 直接执行脚本:
    vite-node ./path/to/your/target-script.ts
    

它会复用你项目中配置的Vite插件,自动处理那些特殊导入,不需要额外配置。

方案二:单独配置Vite构建,生成可执行Node脚本

如果需要长期复用这个脚本,可以写一个独立的Vite构建配置,避免和主项目配置冲突:

  1. 在项目根目录新建vite.script.config.ts:
    import { defineConfig } from 'vite';
    // 导入你项目中处理特殊导入的插件(比如你的导入风格类似SvelteKit插件,按需替换)
    import { sveltekit } from '@sveltejs/kit/vite';
    
    export default defineConfig({
      plugins: [sveltekit()],
      build: {
        outDir: './script-dist', // 单独输出目录,不影响主项目
        lib: {
          entry: './path/to/your/target-script.ts',
          formats: ['cjs'], // 生成CommonJS格式,适配Node环境
          fileName: () => 'run-script.js'
        },
        rollupOptions: {
          // 排除Node内置模块,减小打包体积
          external: ['node:fs', 'node:path']
        }
      }
    });
    
  2. 执行构建:
    vite build --config vite.script.config.ts
    
  3. 运行打包后的脚本:
    node ./script-dist/run-script.js
    

方案三:手动模拟特殊导入(适合简单场景)

如果脚本用到的特殊变量不多,可以手动模拟插件注入的内容,这样就能用ts-node执行:

  1. 在目标脚本开头添加模拟代码:
    // 模拟$env/private/static的变量
    export const env = {
      YOUR_PRIVATE_VAR: process.env.YOUR_PRIVATE_VAR,
      // 按需添加你用到的其他环境变量
    };
    
    // 模拟$app/environment的变量
    export const browser = false; // 脚本运行在Node环境,所以browser为false
    export const dev = process.env.NODE_ENV === 'development';
    
  2. 修改原脚本的导入语句,改为直接使用上面定义的变量。
  3. 用ts-node执行:
    ts-node ./path/to/your/target-script.ts
    

为什么ts-node不行?

ts-node只负责TypeScript转译,不会加载Vite的插件配置——那些$env、$app开头的特殊导入,是Vite插件通过resolveId钩子自定义解析的,ts-node没有这个处理逻辑,所以无法识别。

内容的提问来源于stack exchange,提问作者Jonas V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:58:31