我们都知道,使用npm下载依赖项会非常耗时,尤其是当我们仅限于旧的npm版本时。
对我而言,作为开发人员,这没什么大不了的,因为我不得不在本地开发计算机上执行几次此操作,并且一切都与我项目文件夹中的node_modules缓存一起使用。但是现在我想通过Jenkins将这些应用程序带到CI环境。
我意识到用npm下载依赖项花费了大量时间。这是一个问题,因为:
npm将依赖项下载到项目文件夹中,而不是Maven的/home/user/.m2之类的全局文件夹中
我必须在每次运行中清理Jenkins工作区文件夹,以避免git checkout出现问题。
我想要一个非常优雅的解决方案来在我的Jenkins从属服务器上缓存npm依赖项,但是到目前为止,我只能想到:
从Jenkins工作区中删除除node_modules文件夹之外的所有内容。我不喜欢这样,因为如果我继续为我的项目创建分支,我可能会消耗大量的HDD。每个分支都创建一个工作区。
cp ./node_modules /home/npm_cache在每次npm安装之后,然后cp /home/npm_cache ./node_modules在代码签出之后执行类似的操作。
我觉得这些解决方案很糟糕。必须有更好的方法来做到这一点。