Простейший конфиг webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.ts',
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
{
test: /\.css$/i,
use: ['style-loader', 'css-loader'],
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
};
исходники должны лежать в папке src, стартовый файл index.ts
сборка
webpack --mode=production
разработка с hmr
webpack-dev-server --mode development --inline --hot
зависимости (версии уже надо обновить наверно)
"devDependencies": {
"css-loader": "^3.0.0",
"ts-loader": "^6.0.4",
"tslint": "^5.18.0",
"tslint-config-airbnb": "^5.11.1",
"typescript": "^3.5.2",
"webpack": "^4.35.0",
"webpack-cli": "^3.3.5",
"webpack-dev-server": "^3.7.2"
}
tsconfig.json (думаю не очень хороший, но рабочий)
{
"compilerOptions": {
"allowJs": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"incremental": true,
"module": "es6",
"noImplicitAny": false,
"outDir": "./dist/",
"sourceMap": true,
"target": "es2016"
}
}
tslint.json - правила для линтера
{
"extends": "tslint-config-airbnb",
"rules": {}
}
в html
<script src="dist/bundle.js"></script>