如何使用 create react app 启用 JIT(即时模式)?

How to enable JIT(Just in time mode) with create react app?

我尝试自己在 create-react-app 中设置 JIT,但它似乎不起作用,因为样式没有得到更新。我正在使用 craco 构建带有 tailwind css 的应用程序,并且还按照他们的建议添加了 TAILWIND mode=WATCH 以使其适用于大多数构建。这是我的配置:

tailwind.config.js

module.exports = {
mode: "jit",
purge: ["./src/**/*.{js,jsx,ts,tsx}", "./public/index.html"],
darkMode: false, // or 'media' or 'class'
theme: {
    extend: {
        colors: {
            primary: "#ffa500",
            secondary: {
                100: "#E2E2D5",
                200: "#888883",
            },
        },
    },
},
variants: {
    extend: {
        opacity: ["disabled"],
    },
},
plugins: [],};

package.json 脚本

    "scripts": {
    "start": " craco start",
    "build": "TAILWIND_MODE=watch craco build",
    "test": "craco test",
    "server": "nodemon ./server/server.js",
    "eject": "react-scripts eject"
},

package.json devDependencies

"devDependencies": {
    "autoprefixer": "^9.8.6",
    "postcss": "^7.0.36",
    "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.4"
},

如果我能找到解决这个问题的方法,我会很高兴。


因此,您必须使用 tailwindcss CLI 中提供的 ```--watch``` 选项来查看您的 JSX、JS、HTML 文件,
所以你可以做的是在 react 项目的根目录中打开一个新的终端,然后按照下面的命令
npx tailwindcss -o ./src/App.css --watch
  • [-i] 您也可以使用此选项提供输入文件。
  • [-o] 根据您的文件夹结构修改输出。

这将确保重建 CSS 文件, 下一步是打开另一个终端并执行 npm start,您的开发服务器已准备好使用 JIT 编译器。

(旁注)
此外,我在 package.json 的默认配置中使用 tailwind,它在没有 craco(JIT/默认)和生产中也能顺利运行。

你必须在你的 start 脚本而不是 build 中使用 TAILWIND_MODE=watch,并且在你开发了你想要的东西之后构建它仅使用 craco build 脚本。所以您的 package.json 脚本必须如下所示:

  "scripts": {
    "start": "TAILWIND_MODE=watch craco start",
    "build": "craco build",
    "test": "craco test",
    "eject": "react-scripts eject",
  },

同样在 tailwind.config.css 文件中的 purge prop 中,您必须添加 './src/components/*.{js,jsx}' 因此 purge 应该如下所示:

purge: ['./src/**/*.{js,jsx,ts,tsx}', './public/index.html', './src/components/*.{js,jsx}'],

并且在构建应用程序后,您必须在构建文件夹中提供 index.html 文件。

克隆这个 repo 并在构建项目后使用 npm run servebuild 看看它是否有效。 https://github.com/ako-v/cra-tailwindcss-jit-craco

如果你在 Windows(我怀疑你可能来自你对@Ako 的回答的评论),那么你的设置是正确的,但你只需要安装 cross-env,然后调整你的像这样启动脚本:

"start": "cross-env TAILWIND_MODE=watch craco start"