之前写Dockerfile图省事,直接把所有源码COPY进去再跑npm install,结果每次改一行代码,依赖都要重装一遍,构建慢得离谱。后来才意识到是缓存失效的问题。现在的做法是先单独COPY package.json和lock文件,执行完依赖安装后,再把剩下的源码COPY进去。这样只要依赖没变,就能直接用缓存层,构建时间直接从几分钟缩到十几秒,日常开发体验好多了。