From ce73a51453e1e2a74a4b309488766d8cf73998bf Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Thu, 7 Mar 2024 10:25:05 +1100 Subject: [PATCH 1/7] Fix vite-ecosystem-ci clearTimeout type error --- integration/helpers/playwright-fixture.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) 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; From 9b31736fc66fa2b70373252feb30ebbb5ab9173d Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Thu, 7 Mar 2024 11:45:57 +1100 Subject: [PATCH 2/7] test fixes --- integration/{spa-mode-test.ts => vite-spa-mode-test.ts} | 0 package.json | 2 +- packages/remix-dev/vite/babel.ts | 8 ++++++-- 3 files changed, 7 insertions(+), 3 deletions(-) rename integration/{spa-mode-test.ts => vite-spa-mode-test.ts} (100%) 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..a5be0f122ac 100644 --- a/packages/remix-dev/vite/babel.ts +++ b/packages/remix-dev/vite/babel.ts @@ -1,9 +1,13 @@ +/* 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"; + +const traverse = require("@babel/traverse") + .default as typeof import("@babel/traverse"); +const generate = require("@babel/generator") + .default as typeof import("@babel/generator"); export { traverse, generate, parse, t }; export type { BabelTypes, NodePath }; From 3164e2a790d187e4f0fc60e8048e18d5ac2a3eab Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Thu, 7 Mar 2024 11:59:34 +1100 Subject: [PATCH 3/7] fix types --- packages/remix-dev/vite/babel.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/remix-dev/vite/babel.ts b/packages/remix-dev/vite/babel.ts index a5be0f122ac..264427cdc60 100644 --- a/packages/remix-dev/vite/babel.ts +++ b/packages/remix-dev/vite/babel.ts @@ -5,9 +5,9 @@ import { parse } from "@babel/parser"; import * as t from "@babel/types"; const traverse = require("@babel/traverse") - .default as typeof import("@babel/traverse"); + .default as typeof import("@babel/traverse").default; const generate = require("@babel/generator") - .default as typeof import("@babel/generator"); + .default as typeof import("@babel/generator").default; export { traverse, generate, parse, t }; export type { BabelTypes, NodePath }; From 3db401f22d321b2d0a17545cda0e97b971d13459 Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Fri, 8 Mar 2024 10:57:57 +1100 Subject: [PATCH 4/7] debug --- packages/remix-dev/devServer_unstable/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/remix-dev/devServer_unstable/index.ts b/packages/remix-dev/devServer_unstable/index.ts index ef3a3fb370c..a618d092d90 100644 --- a/packages/remix-dev/devServer_unstable/index.ts +++ b/packages/remix-dev/devServer_unstable/index.ts @@ -104,7 +104,7 @@ export let serve = async ( PATH: bin + (process.platform === "win32" ? ";" : ":") + process.env.PATH, REMIX_DEV_ORIGIN: options.REMIX_DEV_ORIGIN.href, - FORCE_COLOR: process.env.NO_COLOR === undefined ? "1" : "0", + // FORCE_COLOR: process.env.NO_COLOR === undefined ? "1" : "0", }, // https://github.com/sindresorhus/execa/issues/433 windowsHide: false, From f0b1bb9b6f7577c5c80df1e032034f893d65cd3b Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Fri, 8 Mar 2024 11:55:58 +1100 Subject: [PATCH 5/7] debug --- integration/helpers/vite.ts | 2 ++ packages/remix-dev/devServer_unstable/index.ts | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/integration/helpers/vite.ts b/integration/helpers/vite.ts index dedcc52aadf..2aa56906a9e 100644 --- a/integration/helpers/vite.ts +++ b/integration/helpers/vite.ts @@ -130,6 +130,8 @@ export const viteBuild = ({ env: { ...process.env, ...env, + FORCE_COLOR: undefined, + NO_COLOR: "1", }, }); }; diff --git a/packages/remix-dev/devServer_unstable/index.ts b/packages/remix-dev/devServer_unstable/index.ts index a618d092d90..ef3a3fb370c 100644 --- a/packages/remix-dev/devServer_unstable/index.ts +++ b/packages/remix-dev/devServer_unstable/index.ts @@ -104,7 +104,7 @@ export let serve = async ( PATH: bin + (process.platform === "win32" ? ";" : ":") + process.env.PATH, REMIX_DEV_ORIGIN: options.REMIX_DEV_ORIGIN.href, - // FORCE_COLOR: process.env.NO_COLOR === undefined ? "1" : "0", + FORCE_COLOR: process.env.NO_COLOR === undefined ? "1" : "0", }, // https://github.com/sindresorhus/execa/issues/433 windowsHide: false, From 99b6c036f6d825d5344ffc48a20217c6250192ad Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Fri, 8 Mar 2024 13:48:57 +1100 Subject: [PATCH 6/7] color env in vite helpers --- integration/helpers/vite.ts | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/integration/helpers/vite.ts b/integration/helpers/vite.ts index 2aa56906a9e..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,9 +137,8 @@ export const viteBuild = ({ cwd, env: { ...process.env, + ...colorEnv, ...env, - FORCE_COLOR: undefined, - NO_COLOR: "1", }, }); }; @@ -316,6 +323,7 @@ function node( cwd: options.cwd, env: { ...process.env, + ...colorEnv, ...options.env, }, stdio: "pipe", From 3eb2b84db56a24e6d12380fdcd96848adbdbeffe Mon Sep 17 00:00:00 2001 From: Mark Dalgleish Date: Fri, 8 Mar 2024 13:55:22 +1100 Subject: [PATCH 7/7] comment --- packages/remix-dev/vite/babel.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/remix-dev/vite/babel.ts b/packages/remix-dev/vite/babel.ts index 264427cdc60..a075e028363 100644 --- a/packages/remix-dev/vite/babel.ts +++ b/packages/remix-dev/vite/babel.ts @@ -4,6 +4,8 @@ import type { types as BabelTypes } from "@babel/core"; import { parse } from "@babel/parser"; import * as t from "@babel/types"; +// 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")