首页 > 解决方案 > 运行 heroku-postbuild 时出现错误“找不到模块:无法解析 './User.scss'”

问题描述

我正在使用 React/Redux/Firebase 进行聊天

我有下一个结构:

components
 User
  index.js
  User.scss
  UserHeader.js
  UserItem.js
  UserList.js
  UserSerach.js
 Message
  index.js
  Message.scss
  MessageList.js
  ...

“类型”用户的所有组件样式都位于文件 User.scss 我不确定什么是正确的。我不喜欢很多带有组件的文件夹

我的行动:

git add .
git commit --amend --no-edit
heroku create
heroku git:remote -a project-name
git push heroku master

在文件 package.json 我还写:

"engines": {
    "npm": "6.4.1",
    "node": "10.14.2"
}

并在安装软件包后开始生产:

"heroku-postbuild": "npm run serve"

在 heroku 软件包安装期间,我收到一个错误:

ERROR in ./src/components/User/UserHeader.js
remote:        Module not found: Error: Can't resolve './User.scss' in '/tmp/build_0467563cc44feeb52e4f8bb96c6f75fa/src/components/User'
remote:         @ ./src/components/User/UserHeader.js 3:0-33 8:15-21 10:15-21 14:15-21 16:15-21 19:15-21
remote:         @ ./src/components/User/index.js
remote:         @ ./src/components/Chat/Chat.js
remote:         @ ./src/components/Chat/index.js
remote:         @ ./src/components/App/App.js
remote:         @ ./src/components/App/index.js
remote:         @ ./src/index.js

但我导入了 User.scss:

import styles from './User.scss';

其他用户组件会弹出相同的错误。但是我在消息组件中有一个 scss 文件的结构相同,并且没有错误..

webpack 配置中的样式:

{
  test: /\.(sa|sc|c)ss$/,
  use: [
    devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
    {
      loader: 'css-loader',
      options: {
        modules: true,
      }
    },
    {
      loader: 'postcss-loader',
      options: {
        ident: 'postcss',
        plugins: () => [
          autoprefixer({
            browsers: [
              '>1%',
              'last 4 versions',
              'Firefox ESR',
              'not ie < 9'
            ],
            flexbox: 'no-2009'
          })
        ]
      }
    },
  'sass-loader'
  ]
}

我已经尝试了其他几种样式设置-同样的错误。

编辑

我发现错误出在 scss 文件名(user.scss => User.scss)中。但我遇到了同样的错误。

在阅读 webpack 或 Windows 控制台或 Heroku(我不记得)缓存文件后,我修复了一个错误。当您更改它们的位置或 Heroku 的名称时,它们不会更改。有点像,但我不记得了。

我需要在控制台中输入一些内容,以便考虑对文件和路径的更改。也许有人知道?

编辑 2

解决了我的愚蠢问题:

  1. 通过将文件的名称更改为正确的名称,在 GitHub 上进行了提交。如果我在本地更改文件,它就不起作用,因为我上面写的问题)
  2. 做了一个 git pull
  3. 现在 Heroku 工作了:)

但是我仍然想知道如何解决上面写的问题。

标签: reactjsherokusass

解决方案


推荐阅读