为什么webpack的CSS加载程序不起作用?

时间:2018-08-18 10:27:14

标签: reactjs typescript webpack css-loader

我正在制作css-loader文档中描述的玩具示例: https://github.com/webpack-contrib/css-loader

我还尝试了基本指南,该指南也提出了相同的建议:https://css-tricks.com/css-modules-part-2-getting-started/

但是,VS Code高亮显示和通过命令行捆绑在一起时,都抱怨CSS文件的模块不可用。喜欢它并不能真正识别它。我检查过我确实确实安装了css-loader,webpack等。除了css loader,webpack对于javascript,打字稿等都可以正常工作。因此,这实际上只是CSS的问题。任何想法为什么会失败?

我得到的错误是:

  TS2307: Cannot find module 'styles.css'.

我的文件:

import test from 'styles.css';

我也尝试了不带文件扩展名,不带花括号等的情况。但确实遵循了css-loader文档中的玩具示例。

我的webpack.config文件:

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin')

const config = {
  entry: "./src/index.tsx",
  resolve: {
    extensions: ['.tsx', '.js', '.css']
  },
  output: {
    filename: "bundle.js",
  },
  plugins: [
    new HtmlWebpackPlugin({
      title: 'title Cool!',
    }),
  ],
  module: {
    rules: [
      {
        test: /.tsx$/, 
        loader: "ts-loader" ,
      },
      {
        test: /.css$/,
        use: [ 'style-loader', 'css-loader' ],
      }
    ]
  }
}

module.exports = config;

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

确定要命名导入吗?这应该起作用:import './styles.css';

答案 1 :(得分:0)

您应提供文件的相对路径

import test from './path/to/styles.css';

答案 2 :(得分:0)

问题与打字稿有关,与webpack或CSS加载程序无关。 所以我需要将CSS文件添加到用于打字稿的模块中:

declare module '*.css' {
    const content: any;
    export default content;
}

成功了。我不知道为什么在我看到的几十个教程和指南中都没有提到这一点。

相关问题