Как получить наборы для стилевых компонентов, работающих с ts-loader?

Я использую ts-loader с webpack для компиляции моих машинописных файлов. Я смог заставить мою настройку работать для всех модулей, которые имеют типизацию в модуле @types, но я не могу заставить его работать со стилевыми компонентами, которые предоставляют свой собственный файл типизаций.

webpack.config.js:

module.exports = function(env) {
  return {
     module: {
        rules: [
           {
              test: /\.jsx?$/,
              loader: 'babel-loader',
              exclude: /node_modules/,
              options: {
                 babelrc: false,
                 cacheDirectory: true,
              }
           },
           {
              test: /\.tsx?$/,
              loader: 'ts-loader',
              options: {
                 configFile: path.resolve(__dirname, "tsconfig.json")
              },
           }
        ]
     },
     resolve: {
        modules: ['node_modules'],
        extensions: ['.js', '.jsx', '.ts', '.tsx']
     },
     context: __dirname,
     target: 'web',
  };
};

tsconfig.json:

{
   "compilerOptions": {
      "outDir": "./dist",
      "module": "commonjs",
      "target": "es5",
      "noImplicitAny": true,
      "moduleResolution": "node",
      "jsx": "react",
      "allowJs": true,
      "allowSyntheticDefaultImports": true,
      "esModuleInterop": true,
   }
}

Когда я пытаюсь import { ThemedStyledFunction } from 'styled-components'Я получил:

Module '"node_modules/styled-components/dist/styled- components.browser.es"' has no exported member 'ThemedStyledFunction'

Я попытался вручную импортировать наборы для стилевых компонентов, добавив:

"files": [
    "node_modules/styled-components/typings/styled-components.d.ts"
],

Но это не похоже на работу. Я даже пытался создать каталог под @types, называемый styled-components, и скопировать наборы в index.d.ts, но я все еще получаю ту же ошибку.

0 ответов

Другие вопросы по тегам