写在开头
何谓难题?将两个水火不相容的东西强行融合在一起,将两个原理完全冲突的东西强行混合在一起的时候,需求不合理的时候
例如:通过用户的手机壳更换主题颜色
又例如:让马儿跑但是不让马儿吃草
故事的开头
后端同事,在用nodejs做个服务,但是他又做成了镜像(docker容器化了),而且是按需冷启动(即:当有人访问的时候,才启动这个服务),现阶段用的nest.js这个框架,打包出来以后,需要把整个node_modules都copy进去容器,这样导致容器很大~
此时打包工具是
webpack
开始
一开始是他在寻找webapck配置,发现各种配置行不通。打包nodejs项目不能像前端那样,直接只生成静态文件,不用携带node_modules文件夹
核心需求
想要打包nodejs时候,不携带node_modules这个完整文件夹,轻量化,把node_modules代码打包进nodejs项目源码中
国内解决方案
分层构建打包docker镜像之类的,并不能满足
问题分析
nodejs采用的是commonjs模块化方案,当然目前es6模块化也是可以跑的,在服务端运行时候,启动命令是:
node index.js
要想nodejs能顺利跑起来&#x