【问题标题】:Why does Webpack Task Runner for Visual Studio not allow multiple output files?为什么 Visual Studio 的 Webpack Task Runner 不允许多个输出文件?
【发布时间】:2018-02-12 18:12:20
【问题描述】:

我正在使用安装了 Webpack Runner 扩展的 Visual Studio 2017。我有以下 TS 文件:

  • /Scripts/TypeA/A.ts
  • /Scripts/TypeB/B.ts

并希望将它们转换为以下内容:

  • 脚本/TypeA/A_transpiled.js
  • Scripts/TypeB/B_transpiled.js

没有“干净”的方式来做到这一点!

  1. 按照“多编译器”代码示例,Webpack 似乎支持定义多个导出:https://github.com/webpack/webpack/tree/master/examples/multi-compiler。但是,这在 VS 2017 中不起作用。我收到以下错误:

    配置对象无效。 Webpack 已使用与 API 架构不匹配的配置对象进行初始化

  2. 我可以使用这里显示的“名称”参数:

    output: { filename: '[name].js', path: path.resolve(__dirname, './Scripts/') }

但它仍会在同一文件夹中创建所有文件(脚本)。

  1. 这样做的最好但很老套的方法是使整个路径成为条目名称的一部分,如下所示:

    entry: { 'Scripts/TypeA/A_transpiled': './Scripts/TypeA/A.ts', 'Scripts/TypeB/B_transpiled': './Scripts/TypeB/B.ts' }, output: { filename: '[name].js', path: path.resolve(__dirname, '') }

这将在正确的位置创建文件。然而,这还有其他缺点。例如,将您的 ts 文件作为库导出和使用将需要您使用整个路径(如果您使用“name”参数作为库名称),这可能会变得很麻烦。

这似乎是一个巨大的缺点/缺失的功能。我是否遗漏了什么,或者在使用“多编译器”方法时我做错了什么?为什么这么简单的东西没有在 Webpack Task Runner 中实现?我应该考虑完全摆脱 Webpack 并只依赖 Gulp 或 Grunt 吗?

【问题讨论】:

  • 听起来扩展程序没有使用您期望的 Webpack 版本。尝试在 VS 中配置 Web 包管理。通过直接从命令提示符运行 Webpack 来验证它是否有效。
  • 我使用 npm 重新安装了 webpack,这样我就拥有了最新版本的 webpack (3.11.0)。我能够使用上面链接中列出的“多编译器”方法。谢谢!
  • 您应该将其发布为答案。对于所有这些 IDE 插件来说,对环境变量和包管理器版本以及各种东西做出假设真的很容易。

标签: webpack visual-studio-2017 output task-runner-explorer


【解决方案1】:

我使用 npm 重新安装了 webpack,以便拥有最新版本的 webpack (3.11.0)。我能够使用此链接中列出的“多编译器”方法:

https://github.com/webpack/webpack/tree/master/examples/multi-compiler

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多