Reputation: 8386
I've got this configuration from https://www.npmjs.com/package/ts-loader:
webpack.config.js:
var path = require('path');
var webpack = require('webpack');
module.exports = {
mode: "development",
devtool: "inline-source-map",
entry: "./src/Api.ts",
output: {
filename: "bundle.js"
},
resolve: {
// Add `.ts` and `.tsx` as a resolvable extension.
extensions: [".ts", ".tsx", ".js"]
},
module: {
rules: [
// all files with a `.ts` or `.tsx` extension will be handled by `ts-loader`
{ test: /\.tsx?$/, loader: "ts-loader" }
]
}
};
./src/Api.ts:
export class Api {
...
}
But when I run webpack I get:
Error: TypeScript emitted no output for Api.ts
Upvotes: 103
Views: 82787
Reputation: 129
First change webpack config entry like index.js to index.tsx. Second make sure rule added for tsx file like:
{
test: /\.(ts|js)x?$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: [
"@babel/preset-env",
"@babel/preset-react",
"@babel/preset-typescript",
],
},
},
},
Upvotes: 11
Reputation: 35573
Check that you don't have noEmit
set to true
In your tsconfig.json
file.
Upvotes: 313