Как получить наборы для стилевых компонентов, работающих с 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, но я все еще получаю ту же ошибку.