一、前言
最近和同事在研究怎么利用webpack实现在不修改任何代码的前提下动态打包。因为目前的项目里面放了n多个子模块,每次打包执行npm run build,结果就是打包了全部的代码,这样不仅打包后的文件特别大臃肿,而且也影响性能,于是才有了想要哪几个模块打包哪几个模块的想法,当然,为了后期的维护问题,当然不能是打包一次修改一次代码。
既然需求是不能修改代码,那我怎么知道你需要哪些模块呢?
二、动态npm脚本
不能改代码,那就只能改脚本了,思路也有两种:动态脚本和脚本传参
2.1动态脚本
动态脚本,此处是指 不同的脚本命令,比如,你要打包A系统,你就运行npm run buid A,你要打包B系统,你就运行npm run buid B ,方法可行,但缺点也是显而易见的,你需要定义多个不同的npm脚本,随着后面项目变大,npm 脚本数量会越来越多,不利于后期维护。所以,此路不通!
2.2脚本传参
否定了动态脚本后,就只剩下脚本传参了,而这里的脚本传参不像是我在网上找到的大多数的那样,参数是确定的写死的,这里的参数肯定是动态的,而且在你在电脑上敲出打包命令后动态传入的。
一般npm 脚本传参:在具体命令上