用webpack开发服务端nodejs应用是怎样的体验?
发布于 7 年前 作者 Matrixbirds 6097 次浏览 来自 问答

RT?

9 回复

我觉得会崩溃, 最近我用过一点webpack,我只用了他把require模块加载合并成一个文件的功能。也有require一个开源模块。 如果我们在nodejs中使用webpack,他要是把整条引用链路上的所有文件都加载到一个文件当中了,那的多大的一个文件。编译一次我估计就彻底崩溃了。

@ugrg soga。我不打算做文件整合。。我只是想用webpack帮我解决require的路径目录问题和用loader分离业务代码和基础模块代码。

后端代码还是不要玩这些,会搞死你的。

收益太低了:

  • 后端代码追求的是稳定,易追查问题。 目前 node lts 支持的 ES 特性已经足够满足绝大部分场景了。
  • 编译后的代码,对你是黑盒,不可读,线上排查问题麻烦。
  • webpack 更多是针对前端的,万一他们有一个 break,你代码就挂了,或者里面有一个内存泄露啥的。

当然,如果你是玩玩的,那开心就好。

@Matrixbirds

分离业务代码和基础模块代码这块,可以看下我们的企业级 Node.js 框架 – eggjs 的做法,我们通过插件的方式来解决,完美达到生态共建和差异化定制的平衡点。

https://eggjs.org/zh-cn/intro/

做了electron的webpack打包,我当时情况是这样的。 每次用户打开软件的时候,都会去下载远程的一个js文件,用eval执行,所以直接用webpack打包了。 为了防止链式的打包导致文件过大,我对一些文件进行了不声明打包,因为electron客户端有了,下面是这个webpack的文件。

module.exports = {
    entry: __dirname + '/app.js', //唯一入口文件
    externals:{
      'fs':'require("fs")',
      'ejs':'require("ejs")',
      'request':'require("request")',
      'cheerio':'require("cheerio")',
      'os':'require("os")',
      'child_process':'require("child_process")'
    },
    output: {
        path: __dirname, //打包后的文件存放的地方
        filename: 'build.js' //打包后输出文件的文件名
    }
}
回到顶部