tsconfig 的 'outFile' 和 webpack config 的 'output' 有什么区别

What's the difference between tsconfig's 'outFile' and webpack config's 'output'

'output' 路径有何不同? tsconfig 是加载程序吗?并且 webpack 在 运行 tsconfig 构建之后解析 '.ts' 文件?
为什么找不到文件 'src.js'?被webpack自动删除了?

tsconfig.json:

{
    "compilerOptions": {
        "module": "amd",
        "noImplicitAny": true,
        "removeComments": true,
        "preserveConstEnums": true,
        "outFile": "src.js",
        "sourceMap": true
    },
    "include": [
        "src/**/*"
    ],
    "exclude": [
        "node_modules"
    ]
}

webpack.config.js:

module.exports = {  
    entry: './index.ts',  
    output: {  
        filename: './dest.js'  
    },  
    module: {  
        loaders: [{  
            test: /\.ts$/,  
            loader:'ts-loader'
        }]  
    },  
    resolve: {  
        extensions: ['.webpack.js', '.web.js', '.ts', '.js']  
    }  
}  

当我 运行 'webpack' 找不到 'src.js' 而 'dest.js' 没问题。

非常感谢。

输出文件

TS编译器在使用tsc命令时使用此配置选项

Concatenate and emit output to single file.

您可以阅读有关编译器选项的更多信息 here

输出

这个配置选项被Webpack使用到

The top-level output key contains set of options instructing webpack on how and where it should output your bundles, assets and anything else you bundle or load with webpack.

为什么缺少 src.js

当您使用 ts-loader 而不是 tsc 作为 webpack 构建的一部分时,不会使用 tsconfig.json 中的 outFile 选项。 Webpack 在加载 .ts 文件时检测到它应该传递给 ts-loader,后者又使用编译器编译 只有这个文件 然后 returns 输出到 webpack。它永远不会像 tsc 那样处理所有文件。这就是为什么没有生成 src.js 的原因。