skimemo


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


#author("2026-04-10T11:07:18+00:00","","")
#author("2026-04-10T11:12:57+00:00","atsumi","atsumi")
#blog2navi()
*@hubspot/cms-dev-serverをWindows環境で動くようにする [#x69d70eb]

Windows環境で @hubspot/cms-dev-server が動かなかったので、動くようにしたメモ。~
~
以下の差分ファイルを package.json と同じディレクトリの「patches」デイレクトリに置きます。~

■ @hubspot+cms-dev-server+1.2.25.patch
{{{
■ patches\@hubspot+cms-dev-server+1.2.25.patch
#code(){{{
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にパッチを当てる処理を追加します。~
{{{
#code(json){{{
"scripts": {
  "postinstall": "patch-package"
},
}}}
あとは、npm i するとパッチが当たります。
あとは、''npm i'' するとパッチが当たります。

#htmlinsert(twitterbutton.html)
RIGHT:Category: [[[Linux>日記/Category/Linux]]] - 20:07:18
----
RIGHT:&blog2trackback();
#comment(above)
#blog2navi()