首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在部署到Heroku时,“`Prop‘`className`”没有匹配,但在本地工作

在部署到Heroku时,“`Prop‘`className`”没有匹配,但在本地工作
EN

Stack Overflow用户
提问于 2020-09-01 10:12:42
回答 2查看 512关注 0票数 1

我得到了以下错误:

道具className不匹配。服务器:"jss1 jss5“客户端:”makeStyles root-1 makeStyles root-5“

在部署到Heroku的时候。所有东西在本地正常工作,但在部署时却不正常。我的设置与这里差不多。

我发现了一个类似的Github问题,但是没有一个建议对我有帮助。

在本地,这些类似于makeStyles-${key}-${id}的类是在我开发时注入的,但它不在Heroku上工作。会有什么问题吗?

编辑

经过更多的调查,将NODE_ENV设置为生产似乎是它崩溃的原因。以下是我在package.json中的脚本

代码语言:javascript
复制
    "scripts": {
        "dev": "nodemon server.ts",
        "build": "next build && tsc --project tsconfig.server.json",
        "start": "NODE_ENV=production node .next/production-server/server.js"
    }

如果我把它改为:

代码语言:javascript
复制
    ...
        "start": "NODE_ENV=development node .next/production-server/server.js"
                           ^^^^^^^^^^^
    ...

然后,它的工作方式与它的工作方式,如果我要运行npm run dev

我注意到,当NODE_ENV=production时,我所有使用makeStyles的重要UI组件都有classNames of jss-'some-number'。有些是jss1jss5等,当NODE_ENV=development时,这些get被makeStyles-root-1makeStyles-footer-1等取代。

我的tsconfig.server.json

代码语言:javascript
复制
{
    "extends": "./tsconfig.json",
    "compilerOptions": {
        "noEmit": false,
        "module": "commonjs",
        "outDir": ".next/production-server/"
    },
    "include": ["**/*.ts"]
}

看起来这和Heroku一点关系都没有,我的配置也有问题。任何帮助都将不胜感激。

再生产问题

Github问题与可重复回购。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-03 17:39:41

server.ts中,您正在检查一个不正确的环境变量,以确定您是否在生产模式下运行。换行

代码语言:javascript
复制
const dev = process.env.NODE_DEV !== 'production';

代码语言:javascript
复制
const dev = process.env.NODE_ENV !== 'production';
票数 2
EN

Stack Overflow用户

发布于 2020-09-07 05:13:15

实际上,在package.json上的行号8中,有这样的脚本:

代码语言:javascript
复制
"start": "NODE_ENV=production node .next/production-server/server.js"

这意味着NODE_ENV变量是production,所以在整个检查开发或生产环境的项目中,您应该检查NODE_ENV键,但是在server.ts文件中,在线编号为6时,可以看到以下代码:

代码语言:javascript
复制
const dev = process.env.NODE_DEV !== 'production';

这意味着您正在检查NODE_DEV环境变量,它与NODE_ENV环境变量不同,因为这种不匹配导致了当前的问题。

解决方案:检查生产中一致的环境变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63685665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档