Skip to content

Display errors in evalite.config.ts resolution #333

@silas

Description

@silas

We use vite-tsconfig-paths in our project to support compilerOptions.paths, but it seems like evalite isn't picking it up.

Looking at the runEvalite code, I don't see any obvious reason why plugins wouldn't get passed along.

It's totally possible vite-tsconfig-paths is doing some magic that isn't supported in evalite.

Are vitest plugins supported, did I miss something obvious?

You can see a full example here: https://github.com/silas/evalite-vite-tsconfig-paths

package.json

{
  "devDependencies": {
    "ai": "6.0.0-beta.99",
    "evalite": "1.0.0-beta.5",
    "vite-tsconfig-paths": "^5.1.4",
    "vitest": "^4.0.9"
  }
}

vitest.config.ts

import tsconfigPaths from "vite-tsconfig-paths";
import { defineConfig } from "vitest/config";

export default defineConfig({
  plugins: [tsconfigPaths()],
});

evalite.config.ts

import { defineConfig } from "evalite/config";
import viteConfig from "./vite.config.ts";

export default defineConfig({
  viteConfig: viteConfig,
});

vitest.spec.ts (works as expected):

import { expect, test } from "vitest";

import { EXPECTED } from "@/data";

test("should work", () => {
  expect("Hello World!").toBe(EXPECTED);
});

path.eval.ts (fails):

import { evalite } from "evalite";
import { exactMatch } from "evalite/scorers";

import { EXPECTED } from "@/data";

evalite("My Eval", {
  data: [{ input: "Hello", expected: EXPECTED }],
  task: async (input) => {
    return input + " World!";
  },
  scorers: [
    {
      scorer: ({ output, expected }) =>
        exactMatch({ actual: output, expected }),
    },
  ],
});

When running this evaluation I get the following error:

$ pnpm evalite

 EVALITE running...

Sourcemap for "/Users/demo/src/evalite-vite-tsconfig-paths/node_modules/.pnpm/evalite@1.0.0-beta.5_better-sqlite3@11.10.0/node_modules/evalite/dist/env-setup-file.js" points to missing source files
 ✖ path.eval.ts  (unknown evals)
Error: Cannot find package '@/data' imported from '/Users/demo/src/evalite-vite-tsconfig-paths/path.eval.ts'
 ❯ path.eval.ts:4:1
      2| import { exactMatch } from "evalite/scorers";
      3|
      4| import { EXPECTED } from "@/data";
       | ^
      5|
      6| evalite("My Eval", {

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }
 ⏳ no-path.eval.ts  (1 eval)
 100% no-path.eval.ts  (1 eval)

      Score  100%
 Eval Files  2
      Evals  1
   Duration  3ms

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions