为什么在更改 tsx 文件后,我的 scss 模块文件在 remix 应用程序中的 hmr 之后被删除?

问题描述 投票:0回答:1

我是重新混合的新手,我正在尝试让 css 模块正常工作,看起来 css 在热重新加载后已从 html 中删除

我的应用程序似乎有一个非常基本的设置,并且在初始加载时应用了 CSS,但由于某种原因,当我编辑组件时,文本变回黑色,发生了什么?

package.json

{
  "dependencies": {
    "@remix-run/node": "^2.9.2",
    "@remix-run/react": "^2.9.2",
    "@remix-run/serve": "^2.9.2",
    "isbot": "^4.1.0",
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@remix-run/dev": "^2.9.2",
    "@types/react": "^18.2.20",
    "@types/react-dom": "^18.2.7",
    "@typescript-eslint/eslint-plugin": "^6.7.4",
    "@typescript-eslint/parser": "^6.7.4",
    "eslint": "^8.38.0",
    "eslint-import-resolver-typescript": "^3.6.1",
    "eslint-plugin-import": "^2.28.1",
    "eslint-plugin-jsx-a11y": "^6.7.1",
    "eslint-plugin-react": "^7.33.2",
    "eslint-plugin-react-hooks": "^4.6.0",
    "sass": "^1.77.2",
    "typescript": "^5.1.6",
    "vite": "^5.1.0",
    "vite-tsconfig-paths": "^4.2.1"
  },
  "engines": {
    "node": ">=20.0.0"
  }
}

_index.tsx

import classes from "../styles/global.module.scss";

export default function Index() {
  return <h1 className={classes["test"]}>Welcome to Remix</h1>;
}

全局.module.scss

.test {
  color: #d90000;
}

root.tsx

import type { LinksFunction } from "@remix-run/node";
import {
  Links,
  Meta,
  Outlet,
  Scripts,
  ScrollRestoration,
} from "@remix-run/react";

import globalStyles from "~/styles/global.module.scss?url";

export function Layout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <head>
        <meta charSet="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <Meta />
        <Links />
      </head>
      <body>
        {children}
        <ScrollRestoration />
        <Scripts />
      </body>
    </html>
  );
}

export default function App() {
  return <Outlet />;
}

vite.config.json

import { vitePlugin as remix } from "@remix-run/dev";
import { defineConfig } from "vite";
import tsconfigPaths from "vite-tsconfig-paths";

export default defineConfig({
  plugins: [
    remix({
      future: {
        v3_fetcherPersist: true,
        v3_relativeSplatPath: true,
        v3_throwAbortReason: true,
      },
    }),
    tsconfigPaths(),
  ],
});

reactjs vite css-modules remix.run
1个回答
0
投票

问题在于样式直接添加到路线中的元素会导致 HMR 崩溃。完整的解释和示例在这里 https://github.com/remix-run/remix/issues/10011.

© www.soinside.com 2019 - 2024. All rights reserved.