Есть две проблемы с вашей конфигурацией.
Сначала с вашей конфигурацией TypeScript:
{
"compilerOptions": {
"target": "ES5",
"module": "ESNext",
"moduleResolution": "node",
"strict": true,
"jsx": "react",
"jsxFactory": "h",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
},
"include": [
"src/**/*.tsx"
]
}
Два важных свойства, которые следует запомнить:
module
: 'ESNext' moduleResolution
: 'node'
Как только вы установите module
в ESNext
, вы не сможете написать свою конфигурацию Webpack в TypeScript так, как она ожидает модуль должен быть commonjs
. Поэтому измените его на обычный JS с общим JS форматом:
const Configuration = require('webpack').Configuration;
const Dev = require('webpack-dev-server').Configuration;
const resolve = require('path').resolve;
const HtmlWebpackPlugin = require('html-webpack-plugin');
const config = {
entry: {
index: `${__dirname}/src/index.tsx`
},
output: {
path: resolve(__dirname, 'dist'),
chunkFilename: '[name].[id].js',
filename: '[name].bundle.js'
},
plugins: [new HtmlWebpackPlugin()],
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: [/node_modules/]
}
]
},
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
optimization: {
minimize: false
}
};
module.exports = config;
Это должно решить вашу проблему.