专业的赣州网站建设,重庆建站模板搭建,网页设计师简介,找人网站 优帮云前端开发时经常会接手一个别人创建的项目已经上线了#xff0c;后期让我来修复缺陷#xff0c;或者子新增功能。
上来就使用npm install 安装项目依赖#xff0c;一看package-lock.json文件被自动修改了#xff0c;可是我也没有修改package.json文件内容啊#xff0c;不管…前端开发时经常会接手一个别人创建的项目已经上线了后期让我来修复缺陷或者子新增功能。
上来就使用npm install 安装项目依赖一看package-lock.json文件被自动修改了可是我也没有修改package.json文件内容啊不管了跑起来试试居然运行报错伤心。。。
你们是不是也经常遇到这种情况怎么解决呢使用npm ci安装依赖。
为什么使用 npm ci 安装就好了为什么 npm install 安装依赖会修改项目的 package-lock.json接下来就来看看。
npm install 和 npm ci 有什么区别呢
npm install或者 npm i通常是用来安装依赖项
它将会安装 Node.js 项目所有的依赖项如果使用 ^ 或 ~ 来匹配依赖项的版本时则 npm 可能无法安装确切版本利用 npm install 安装新依赖项时会更新 package-lock.json。
npm ci 并不仅仅适用于持续集成系统在日常开发中npm ci 非常实用。和 npm install 不同npm ci 根据 package-lock.json 安装依赖这可以保证整个开发团队都使用版本完全一致的依赖避免把时间浪费在排查因为依赖不一致而导致的各种奇怪问题上。
不仅如此npm ci 还有一个很好的作用加快 node 模块安装速度。因为 npm ci 直接根据 package-lock.json 中指定的版本安装无需计算求解依赖满足问题在大多数情况下都可以大大加速 node 模块安装过程。
使用 npm ci会发生
自动删除 node_modules。当 npm ci 时如果 node_modules 存在则自动删除它这是为了保证一个干净的 node_modules 环境避免遗留旧版本库的副作用。package-lock.json 必须存在。package-lock.json 用于锁住 package 的版本号避免在生产环境中因版本导致的构建错误或者运行时错误就是 npm ci 根据 package-lock.json 安装依赖不像 npm installnpm ci 不会修改你的 package-lock.json。但是前提是你的项目中有一个 package-lock.json 文件 - 如果你没有这个文件npm ci 将不起作用此时必须使用 npm install。不能单独装包。这一条很容易解释它适用于持续集成环境中无法单独装包例如无法仅仅安装 lodash。
如果你使用 npm v6
使用 npm install 安装新的依赖项或更新现有的依赖项例如从版本1到版本2;在持续集成工具中运行时使用 npm ci或者某些不修改 package-lock.json 的情况下安装依赖项。
如果你使用 npm v5 或者更低的版本
只能通过 npm install 来安装或者更新依赖项尝试升级到最新的 npm 版本。除了npm ci 之外它还具有 npm audit 命令可以更轻松地识别和修复依赖项的安全漏洞。此外使用 npm v6 安装依赖项应该更快。
关于使用 npm ci 的场景它应该是这样的 在有 package-lock.json 的项目我们可以推荐使用 npm ci 来替代 npm install这样的话就可以避免一些不必要的麻烦啦。