skimemo


skimemo - 日記/2026-04-10/@hubspot/cms-dev-serverをWindows環境で動くようにする

_ @hubspot/cms-dev-serverをWindows環境で動くようにする

Windows環境で @hubspot/cms-dev-server が動かなかったので、動くようにしたメモ。

以下の差分ファイルを package.json と同じディレクトリの「patches」デイレクトリに置きます。

■ patches\@hubspot+cms-dev-server+1.2.25.patch

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
diff --git a/node_modules/@hubspot/cms-dev-server/dist/run.js b/node_modules/@hubspot/cms-dev-server/dist/run.js
index dc630fb..d97bdce 100644
--- a/node_modules/@hubspot/cms-dev-server/dist/run.js
+++ b/node_modules/@hubspot/cms-dev-server/dist/run.js
@@ -6420,17 +6420,11 @@ HubSpot CMS dev server running at ${protocol}://hslocal.net:${PORT}${extraServer
         `Starting storybook server on port ${STORYBOOK_PORT}`
       )
     );
+    const isWin = process.platform === "win32";
+    const args = ["dev", "-p", STORYBOOK_PORT.toString(), "-c", configPath, "--quiet", "--no-open"];
     const storybookProcess = spawn2(
-      storybookBin,
-      [
-        "dev",
-        "-p",
-        STORYBOOK_PORT.toString(),
-        "-c",
-        configPath,
-        "--quiet",
-        "--no-open"
-      ],
+      isWin ? "node" : storybookBin,
+      isWin ? [storybookBin, ...args] : args,
       {
         cwd: process.cwd(),
         env: {
diff --git a/node_modules/@hubspot/cms-dev-server/dist/storybook-main/main.js b/node_modules/@hubspot/cms-dev-server/dist/storybook-main/main.js
index 3bb231a..9495f19 100644
--- a/node_modules/@hubspot/cms-dev-server/dist/storybook-main/main.js
+++ b/node_modules/@hubspot/cms-dev-server/dist/storybook-main/main.js
@@ -1341,7 +1341,7 @@ import { mergeConfig } from "vite";
 import { withoutVitePlugins } from "@storybook/builder-vite";
 import { default as react } from "@vitejs/plugin-react";
 var webRoot = process.env.WEB_ROOT;
-var storyPath = path2.resolve(process.cwd(), webRoot, "**/*.stories.*");
+var storyPath = path2.resolve(webRoot, "**/*.stories.*").replace(/\\/g, "/");
 var jsRenderingGates = process.env.GATES ? process.env.GATES.split(",") : [];
 var main_default = {
   addons: ["@storybook/addon-essentials"],


そして、package.jsonにパッチを当てる処理を追加します。

  1
  2
  3
"scripts": {
  "postinstall": "patch-package"
},

あとは、npm i するとパッチが当たります。

Category: [Linux] - 20:07:18



 
Last-modified: 2026-04-10 (金) 20:12:57