用webpack开发服务端nodejs应用是怎样的体验?
RT?
9 回复
我觉得会崩溃, 最近我用过一点webpack,我只用了他把require模块加载合并成一个文件的功能。也有require一个开源模块。 如果我们在nodejs中使用webpack,他要是把整条引用链路上的所有文件都加载到一个文件当中了,那的多大的一个文件。编译一次我估计就彻底崩溃了。
@ugrg soga。我不打算做文件整合。。我只是想用webpack帮我解决require的路径目录问题和用loader分离业务代码和基础模块代码。
后端代码还是不要玩这些,会搞死你的。
@atian25 比如。。
收益太低了:
- 后端代码追求的是稳定,易追查问题。 目前 node lts 支持的 ES 特性已经足够满足绝大部分场景了。
- 编译后的代码,对你是黑盒,不可读,线上排查问题麻烦。
- webpack 更多是针对前端的,万一他们有一个 break,你代码就挂了,或者里面有一个内存泄露啥的。
当然,如果你是玩玩的,那开心就好。
@atian25 soga
分离业务代码和基础模块代码这块,可以看下我们的企业级 Node.js 框架 – eggjs 的做法,我们通过插件的方式来解决,完美达到生态共建和差异化定制的平衡点。
做了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' //打包后输出文件的文件名
}
}
@cctv1005s cool