"tsconfig中的'outFile'和webpack配置中的'output'有什么区别?"

6

'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'是正常的。
非常感谢。
1个回答

4

outFile

当使用tsc命令时,该配置选项由TS编译器用于将输出文件连接并发射到单个文件中。

可以在此处了解有关编译器选项的更多信息。

output

Webpack使用此配置选项来指定应如何以及在哪里输出捆绑包、资产和所有其他您使用webpack打包或加载的内容的一组选项。

为什么src.js文件丢失

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


1
1: 当我在tsconfig.json中删除'outFile'时,'dest.js'没有任何我的代码,它们是由webpack使用amd生成的默认代码。如果我添加'outFile','dest.js'就可以了。 2: 当我删除tsconfig.json文件时,在运行'webpack'时会提示错误,缺少此文件。 - Free Tears
@FreeTears,当我删除tsconfig.json文件时,在运行“webpack”时会提示缺少此文件的错误。 ts-loader 除了 outFile 选项之外还使用此文件进行许多其他操作,因此它是必需的。我不理解你关于 outFile 的第一个观点,你能详细说明一下吗? - Max Koretskyi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接