ts-loader / css-loader 无法导入/解析文件

2023-12-21

尝试使用 style-loader 和 css-loader 添加 css 模块。很难弄清楚这一点。我也不确定是 ts-loader 的问题还是 css-loader 的问题。

webpack.config.js

const path = require('path');

module.exports = env => {
    return {
        devtool: "inline-source-map",
        entry: "./src/index.tsx",
        output: {
            path: path.resolve(__dirname, "/public"),
            filename: "build/app.js"
        },
        resolve: {
            extensions: [".ts", ".tsx", ".js", ".json"],
        },
        module: {
            rules: [
                {
                    test: /\.tsx?$/,
                    loader: "ts-loader",
                },
                {
                    test: /\.css$/,
                    loader: 'style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' 
                  }
            ]
        }
    }
}

成分

import styles from "./Main.css"; // TS2307: Cannot find module './Main.css'.


附:我尝试使用extract-text-webpack-plugin,但这只会让一切变得更加混乱,使错误变得势不可挡


因此,由于这似乎不是一个受欢迎的问题,我设法找到了解决方案。希望这能帮助任何有困难的人ts-loader + css-loader.

1) 添加处理 .css 扩展名的 .d.ts 文件

// I put it in root, but could be anywhere
// <root>/defs.d.ts
declare module "*.css" {
    var styles: { [key: string]: string };
    export = styles
}

2)由于我使用Webpack 3.x,更改style to style-loader in webpack.config.js

    module: {
        rules: [
            //...
            {
                test: /\.css$/,
                loader: 'style-loader!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' 
            }
        ]
    }

3)导入样式为*在组件文件中

// In Main.tsx
import * as styles from "./Main.css";

// Usage
<div className={styles.nameOfClass} />

4) In tsconfig.json add .d.ts文件到include部分。就我而言,它...

"include": [
    "src",
    "./defs.d.ts"
],

重新启动 webpack-dev-server 或其他任何东西,应该就可以了(希望如此)。

快乐编码!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ts-loader / css-loader 无法导入/解析文件 的相关文章

随机推荐

  • 无法编译的源代码 - 错误的符号类型:

    第 14 行发生错误 线程 main 中的异常 java lang RuntimeException 无法编译 源代码 错误的符号类型 很难找到解决方案 package example public class Num public sta
  • 从realm.io读取并添加到listview

    我想用Realm io保存数据 然后在列表视图中显示每个项目 这是我创建数据库的方式 我认为 config new RealmConfiguration Builder this name timeLog schemaVersion 42
  • MacOS 上的 DotNet core 2.0 在使用 couchbase dotnet sdk 时出现由 httpclient 触发的 libcurl 和 ssl 错误

    我正在开发一个Dotnet core 2 x 实际上使用2 1 4 我写这篇文章时的最新版本 Web api项目 为了使用couchbase作为我的数据库服务器 我需要使用couchbase SDK sdk 声明它支持 DotNet cor
  • 连接主报表和子报表 - 将对象列表传递到子报表

    我正在使用报表4 5 1我在连接主报告和子报告时遇到了问题 我有两个对象 Account accountID date listOfParagraphs 所有字段均在主报告中定义 段落 account paragraphNo someObj
  • 使用 XDebug + PHPStorm 进行调试迫使我始终要进入

    我正在尝试调试我的密码接收 tests 我的调试平台使用PHPStorm X调试从正确的浏览器使用时效果很好IDE KEY作为饼干 但是 当尝试使用以下命令调试 codecept 时CLI我遇到以下问题 如果我在 Cest 类中放置断点 行
  • 为什么我无法在 Apache 中禁用 .htaccess?

    这与我读过的大多数问题相反 我在使用 Apache 2 2 8 的 Amazon 实例上运行 Ubuntu 8 04 我不明白为什么将 root 的 AllowOverride 设置为 None 不会阻止包含我的 htaccess 文件 我
  • 为什么Object类是java中的超类[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 为什么object Class是java中的超类昨天我参加了一次面试 面试官问了我一些问题 因为 java lang 包中的 Object 类位
  • R 中 Arules 序列挖掘的主序列

    如何从 R 中 arulesSequence 包中的 cspade 算法中删除子序列 例如 如果我的数据 Sample txt 如下 列名称 sequenceID EventID 大小 项目 1 1 1 A 1 2 1 B 1 3 1 C
  • 用C编写命令行shell;第一次尝试使用 ncurses/C

    我正在开发一个类项目 在该项目中我必须编写一个具有以下要求的命令行 shell shell 必须能够读取缓冲的输入 缓冲区应为 64 个字符 Error conditions should be handled 超出缓冲区大小 中断 当信号
  • 需要检测多条线的 RANSAC

    这是一个有点理论问题 但我想知道当图像中检测到多条线时如何随机选择点 到目前为止 在我见过的大多数示例中 似乎只检测到一行 而且看起来很容易 但是 我不确定它如何扩展以检测具有更多点的多条线 我认为你是在一个基本的误解下运作的 RANSAC
  • 如何覆盖 TortoiseSVN 中的本地更改?

    假设我进行了检查 编辑了一些内容 并意识到我想重新下载存储库代码并覆盖我的本地更改而不提交它们 我下载了一个项目 进行了一些编辑 然后我意识到我不喜欢我的本地更改 我尚未提交 如何在不删除文件夹的情况下恢复到存储库的当前状态 我该怎么做呢
  • 为购物车应用程序设计数据库? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我从未从头开始设计数据库 数据模型 模式 尤其是对于 Web 应用程序 在最近的一些工作面试中 我被要求为购物车应用程序 设计 一个数
  • 从没有空格/组合词的文本中检测最有可能的单词

    如何从组合字符串中检测和拆分单词 Example cdimage gt cd image filesaveas gt file save as 这是一个动态编程解决方案 作为记忆函数实现 给定一个单词字典及其出现频率 它会将输入文本分割到给
  • 使滚动条轨道透明

    这里很少有提出相同问题的问题 但他们的解决方案对我不起作用 这是其中一个问题的图片以及我想要实现的目标 我有一个列表 当有更多项目时 会显示滚动条 我还将溢出 y 设置为覆盖 因为我不希望滚动条添加到列表的宽度 如何使轨道透明以便可以看到下
  • 如何查看Android系统版本?

    有谁知道如何检查系统版本 例如1 0 2 2等 以编程方式 如何使用它的示例 if android os Build VERSION SDK INT gt android os Build VERSION CODES GINGERBREAD
  • 如何在iPhone中使用“HTTP直播”播放视频?

    我是 iPhone 开发新手 我正在解析 XML URL 并将其内容显示在表格中 当我单击一行时 使用电影播放器 播放其相应的解析管 URL 我正在使用媒体播放器框架 这是我的代码 NSURL movieURL NSURL URLWithS
  • KarateAPI 中有类似 POJO 的功能吗?

    我使用 Karate 和 RestAssured 一段时间了 当然 这两种工具都有优点和缺点 现在我有一个 RestAssured 项目 其中有请求和响应对象以及 POJO 我的请求包装我的端点并将我的 POJO 发送到这些端点 我在抽象层
  • 如果我在实例方法中放置静态锁会发生什么?

    我是线程新手 目前正在阅读线程同步章节 我对线程锁定的一种情况有疑问 这是我所知道的 1 当我在实例方法中放置实例锁时 即 private Object lock1 new Object private Object lock2 new O
  • 如何为ggplot中的每个点使用不同的形状

    我正在绘制 4 维数据集 除了 x 轴和 y 轴之外 我想用不同宽度和高度的矩形表示第三个和第四个维度 我可以这样做吗ggplot 谢谢 这是一种方法 dd lt data frame x x lt 1 10 y x rnorm 10 wi
  • ts-loader / css-loader 无法导入/解析文件

    尝试使用 style loader 和 css loader 添加 css 模块 很难弄清楚这一点 我也不确定是 ts loader 的问题还是 css loader 的问题 webpack config js const path req