【问题标题】:Using webpack on the node backend在节点后端使用 webpack
【发布时间】:2019-04-12 03:42:43
【问题描述】:

我试图弄清楚是否应该在节点应用程序的后端使用 webpack(用打字稿编写),主要是因为节点有一个内置的模块加载器。我使用 tsc 将 .ts 文件转换为 .js ,节点中的模块加载器在运行时加载文件。使用 webpack 有什么好处?

谢谢

【问题讨论】:

    标签: node.js webpack


    【解决方案1】:

    以下是在后端使用 Webpack 之类的打包工具的一些优势:

    • 它允许您将应用代码捆绑到一个仅包含相关代码的压缩文件中。

      当您想要最小化包的大小或想要创建一个可以在没有 node_modules 目录的情况下运行的独立文件时,这尤其有用。

    • 它通过最小化包大小和模块查找所需的时间来帮助您缩短应用启动时间。

    • 它可以在服务器端加载热代码(也可以在没有 webpack 的情况下完成)

    • 它使您可以使用其他 webpack 插件和加载器。

    考虑到所有这些优点,它有自己的怪癖,并且会使事情变得比应有的复杂。所以很明显,只有在绝对必要时才使用它。

    【讨论】:

      【解决方案2】:

      没有硬性规定你必须使用webpack 来捆绑你的节点应用程序。但是,当你有能力为什么不使用它时,Webpack 是一个很棒的有益健康的应用程序捆绑器。使用的两个主要优点它是

      热重载 - 随时关注指定的更改和重载

      别名 - 给出基于 webpack 中的数组配置解析的托管路径

      如果你仔细阅读它的文档,最好的线路就会发挥作用

      它是一个工具,可让您捆绑 JavaScript 应用程序 (同时支持 ESM 和 CommonJS)并且可以扩展支持 许多不同的资产,例如图像、字体和样式表。

      webpack 关心性能和加载时间;它总是在改进 或添加新功能,例如异步块加载和预取, 为您的项目和您的项目提供最佳体验 用户。

      【讨论】:

      • > But, when you have the capability why not use it ,Webpack is an awesome wholesome application bundler and transpiler. 仅仅因为您可以使用某些东西,并不意味着您应该使用它。 Webpack 也是一个打包器,而不是一个转译器。它可以与其他转译器集成,但 Webpack 本身就是一个打包器。
      • 此外,导入路径别名可以很容易地使用 Typescript(OP 当前正在使用的)定义。请参阅here 了解更多信息。
      • 感谢您的 cmets,但在典型的 nodejs 项目中使用它吗?另外有没有什么方法可以在不使用 webpack 的情况下实现模块热重载。
      • @tmpdev github.com/sidorares/hot-module-replacement 这个模块不依赖于 Webpack。
      • 如果有人在看这篇文章,我发现了nodemon。这非常适合热重载。
      猜你喜欢
      • 2016-06-03
      • 1970-01-01
      • 2020-08-10
      • 2019-10-31
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      相关资源
      最近更新 更多