node_modules
文件夹永远不会被重复使用在给定堆栈的构建之间集中/重用node_modules
文件夹的推荐方法是什么?
npm cache
- 默认情况下会发生这种情况,因此至少我们不会每次都从互联网上下载软件包。 node_modules
符号链接到公共目录 - 这种方法有效(从几分钟到几秒)但不幸的是,在Windows上处理符号链接时,一些gulp / grunt任务失败了。 Womp womp。node_modules
文件夹:不确定,但似乎节点可以分层搜索node_modules
文件夹。在这种情况下,在父目录中创建node_modules
文件夹可能会解决问题。NODE_PATH
环境变量 - 不确定设置此项是否会执行与上述内容类似的操作,并在未找到时提供常用的node_modules
文件夹在我们的一个版本中。Move-Item
返回&在备份目录之间:如果我们必须破解它,那么每个项目ID使用一个备份目录并使用Move-Item
可能是值得的,它应该更新分区链接而不是复制文件,至少。 That approach is outlined on this blog post。 答案 0 :(得分:0)
我被告知您可以关闭进度报告并显着加快速度: http://biercoff.com/how-to-crazy-easily-speed-up-your-npm-install-speed/
答案 1 :(得分:0)
您是否尝试过docker缓存?
将npm install
放入Dockerfile,运行docker build
FROM node:12
WORKDIR /code
COPY ./package.json ./package-lock.json /code
RUN npm install # skiped when package.json/package-lock.json not changed.
ADD . /code
# do other things
Docker构建会为每个命令(COPY / ADD / RUN)创建一个层,并在重新构建时将其用作缓存(如果未进行任何更改)。
只要package.json / package-lock.json不变
docker build
将缓存用于
COPY ./package.json ./package-lock.json /code
和
RUN npm install
因此您无需加快npm install
的速度,只需跳过即可。