当我尝试编译一个.ts文件时,我得到以下错误:
Module build failed: Error: Typescript emitted no output for C:\xampp\htdocs\node-api\src\js\server.ts.
at successLoader (C:\xampp\htdocs\node-api\node_modules\ts-loader\dist\index.js:39:15)
at Object.loader (C:\xampp\htdocs\node-api\node_modules\ts-loader\dist\index.js:21:12)
我使用以下配置文件进行编译。
网络包:
const path = require( 'path' ),
CleanWebpackPlugin = require( 'clean-webpack-plugin' );
module.exports = env => {
return {
mode: env.dev ? 'development' : 'production',
entry: {
'server': './src/js/server.ts'
},
output: {
path: __dirname,
filename: './dist/js/[name].js',
},
externals: '/node_modules',
module: {
rules: [
{
test: /\.js$/,
exclude: ['/node_modules/', '/src/scss/'],
use: [
'babel-loader'
]
},
{
test: /\.ts(x?)$/,
exclude: ['/node_modules/', '/src/scss/'],
use: [
'babel-loader',
'ts-loader',
]
},
{
test: /\.json$/,
loader: 'json-loader'
},
]
},
resolve: {
extensions: ['.ts', '.tsx', '.js' ],
alias: {
'@': path.resolve(__dirname, './src/js')
}
},
plugins: [
new CleanWebpackPlugin(['./dist/js', './dist/css']),
]
}
};
typescript :
{
"compilerOptions": {
"removeComments": true,
"preserveConstEnums": true,
"allowJs": true,
"outDir": "./dist/js",
"target": "es5",
"moduleResolution": "node",
"module": "es2015",
"lib": [
"es2015",
"es2016"
]
},
"exclude": [
"node_modules"
]
}
巴别塔:
{
"presets": [
[
"env", {
"targets": {
"node": "current"
}
}
],
"stage-2", "es2015"
],
"plugins": ["dynamic-import-node"]
}
正如在其他一些问题中所建议的,我已经改变了解析扩展的顺序,但这并没有解决它(.js
在.ts
之前)。Typescript 2.8.3与Node 8.11.1和Mongoose 5.0.15结合使用,并由Webpack 4.6编译。所以我仍然想知道如何解决上面提到的错误。
4条答案
按热度按时间hiz5n14c1#
请在您的
tsconfig.json
中将noEmit
设置为false
。默认情况下,它设置为true
,一旦我们将其更改为false
,我们可能不会得到此错误。"noEmit": false
8tntrjer2#
在Webpack配置中如下覆盖
compilerOptions
(使用ts-loader
时):6qqygrtg3#
使用webpack 5和Typescript 4. 5,我可以运行一个expressjs + prisma服务器,其中包含以下内容:
webpack.config.js:
tsconfig.json:
来源:https://webpack.js.org/guides/typescript/
xpcnnkqh4#
在我的例子中,我必须从
tsconfig.json
中删除"emitDeclarationOnly": true
(or只需将其设置为
false
)启用此选项后,它将只输出
d.ts
文件,而不输出JavaScript文件。阅读更多信息:https://www.typescriptlang.org/tsconfig#emitDeclarationOnly