Reactjs 使用typescript和模块css响应库

Reactjs 使用typescript和模块css响应库,reactjs,typescript,Reactjs,Typescript,对于带有typescript和模块css的react库,bolderplate项目应该是什么样子 我不知道在这种情况下rolloup.config.js应该是什么样子 当我构建项目时,我遇到了一个错误 语义错误TS2307:找不到模块'./MyComponent.module.css'。 我在rollup.config.js文件中有类似的内容 import typescript from 'rollup-plugin-typescript2' import commonjs from 'roll

对于带有typescript和模块css的react库,bolderplate项目应该是什么样子

我不知道在这种情况下rolloup.config.js应该是什么样子

当我构建项目时,我遇到了一个错误

语义错误TS2307:找不到模块'./MyComponent.module.css'。

我在rollup.config.js文件中有类似的内容

import typescript from 'rollup-plugin-typescript2'
import commonjs from 'rollup-plugin-commonjs'
import external from 'rollup-plugin-peer-deps-external'
import resolve from 'rollup-plugin-node-resolve'
import peerDepsExternal from 'rollup-plugin-peer-deps-external';
import postcss from 'rollup-plugin-postcss';

import pkg from './package.json'

export default {
  input: 'src/index.ts',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
      exports: 'named',
      sourcemap: true
    },
    {
      file: pkg.module,
      format: 'es',
      exports: 'named',
      sourcemap: true
    }
  ],
  plugins: [
    peerDepsExternal(),
    postcss({
      extract: false,
      modules: true
    }),
    external(),
    resolve(),
    typescript({
      rollupCommonJSResolveHack: true,
      exclude: [
        '**/__tests__/**',
        '**/*.stories.tsx'
      ],
      clean: true
    }),
    commonjs({
      include: ['node_modules/**'],
      namedExports: {
        'node_modules/react/react.js': [
          'Children',
          'Component',
          'PropTypes',
          'createElement'
        ],
        'node_modules/react-dom/index.js': ['render']
      }
    })
  ]
}

但它不起作用。如果有人能用Typescript和模块css创建简单的库项目,那就太好了。

你可以使用create react app创建一个项目,比如
npx create react app myapp--Typescript
,然后在你的项目中添加一个mobular css解决方案,比如样式化组件。这是积分反应的最简单方法。

在此处检查答案

基本上,您需要添加一个文件
typings.d.ts
,如下所示:

declare module "*.module.css" {
  const classes: { [key: string]: string };
  export default classes;
}

这回答了你的问题吗?