diff --git a/integration/helpers/playwright-fixture.ts b/integration/helpers/playwright-fixture.ts index 70e2c47036c..25683743f39 100644 --- a/integration/helpers/playwright-fixture.ts +++ b/integration/helpers/playwright-fixture.ts @@ -277,13 +277,12 @@ async function doAndWait( page.on("requestfailed", onRequestDone); page.on("load", networkSettledCallback); // e.g. navigation with javascript disabled - let timeoutId: NodeJS.Timer | undefined; - if (DEBUG) { - timeoutId = setInterval(() => { - console.log(`${requestCounter} requests pending:`); - for (let request of pending) console.log(` ${request.url()}`); - }, 5000); - } + let timeoutId = DEBUG + ? setInterval(() => { + console.log(`${requestCounter} requests pending:`); + for (let request of pending) console.log(` ${request.url()}`); + }, 5000) + : undefined; let result = await action(); actionDone = true; diff --git a/integration/helpers/vite.ts b/integration/helpers/vite.ts index dedcc52aadf..0216d50f59d 100644 --- a/integration/helpers/vite.ts +++ b/integration/helpers/vite.ts @@ -116,6 +116,14 @@ export async function createProject( return projectDir; } +// Avoid "Warning: The 'NO_COLOR' env is ignored due to the 'FORCE_COLOR' env +// being set" in vite-ecosystem-ci which breaks empty stderr assertions. To fix +// this we always ensure that only NO_COLOR is set after spreading process.env. +const colorEnv = { + FORCE_COLOR: undefined, + NO_COLOR: "1", +} as const; + export const viteBuild = ({ cwd, env = {}, @@ -129,6 +137,7 @@ export const viteBuild = ({ cwd, env: { ...process.env, + ...colorEnv, ...env, }, }); @@ -314,6 +323,7 @@ function node( cwd: options.cwd, env: { ...process.env, + ...colorEnv, ...options.env, }, stdio: "pipe", diff --git a/integration/spa-mode-test.ts b/integration/vite-spa-mode-test.ts similarity index 100% rename from integration/spa-mode-test.ts rename to integration/vite-spa-mode-test.ts diff --git a/package.json b/package.json index 9dfe42143ff..09ac1bd85b9 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "playwright:integration": "playwright test --config ./integration/playwright.config.ts", "vite-ecosystem-ci:build": "pnpm build", "vite-ecosystem-ci:before-test": "pnpm playwright install", - "vite-ecosystem-ci:test": "pnpm playwright:integration vite && pnpm clean:integration", + "vite-ecosystem-ci:test": "pnpm playwright:integration --project=chromium integration/vite-* && pnpm clean:integration", "changeset": "changeset", "changeset:version": "changeset version && node ./scripts/remove-prerelease-changelogs.mjs && node ./scripts/patchup-version.mjs", "changeset:release": "pnpm build --tsc && changeset publish", diff --git a/packages/remix-dev/vite/babel.ts b/packages/remix-dev/vite/babel.ts index 7f7467905aa..a075e028363 100644 --- a/packages/remix-dev/vite/babel.ts +++ b/packages/remix-dev/vite/babel.ts @@ -1,9 +1,15 @@ +/* eslint-disable @typescript-eslint/consistent-type-imports */ import type { NodePath } from "@babel/traverse"; import type { types as BabelTypes } from "@babel/core"; import { parse } from "@babel/parser"; import * as t from "@babel/types"; -import traverse from "@babel/traverse"; -import generate from "@babel/generator"; + +// These `require`s were needed to support building within vite-ecosystem-ci, +// otherwise we get errors that `traverse` and `generate` are not functions. +const traverse = require("@babel/traverse") + .default as typeof import("@babel/traverse").default; +const generate = require("@babel/generator") + .default as typeof import("@babel/generator").default; export { traverse, generate, parse, t }; export type { BabelTypes, NodePath };