首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何停止npm修改生产服务器上的package-lock.json

停止npm修改生产服务器上的package-lock.json可以通过以下几种方法实现:

  1. 锁定package-lock.json文件的权限:通过修改文件的权限,阻止npm对package-lock.json文件的写入操作。可以使用chmod命令将文件的写入权限设置为只读,例如:chmod 444 package-lock.json这样一来,npm将无法修改package-lock.json文件。
  2. 使用npm ci命令:npm ci命令会根据package-lock.json文件来安装依赖,而不会修改package-lock.json文件。在生产服务器上,可以使用npm ci命令来安装依赖,例如:npm ci --only=production这样一来,npm将根据package-lock.json文件来安装依赖,但不会修改package-lock.json文件。
  3. 使用npm-shrinkwrap.json文件:npm-shrinkwrap.json文件是一个锁定依赖版本的文件,类似于package-lock.json。可以通过创建npm-shrinkwrap.json文件来锁定依赖版本,并在生产服务器上使用该文件来安装依赖。首先,使用以下命令生成npm-shrinkwrap.json文件:npm shrinkwrap --production然后,使用以下命令安装依赖:npm install --production这样一来,npm将根据npm-shrinkwrap.json文件来安装依赖,而不会修改package-lock.json文件。

以上是停止npm修改生产服务器上的package-lock.json的几种方法。根据具体情况选择适合的方法来保护package-lock.json文件的完整性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 Docker 高效部署你前端应用

原因如下 考虑下每次 CI/CD 部署流程 在构建服务器 (Runer) 构建镜像 把镜像推至镜像仓库服务器生产服务器拉取镜像,启动容器 显而易见,镜像体积过大会在前两步上传及下载时造成传输效率低下...即使,构建服务器生产服务器在同一节点下,没有延时问题 (基本没可能)。减少镜像体积也能够节省磁盘空间。 关于镜像体积过大,完全是因为node_modules 臭名昭著体积: ?...生产环境静态资源往往会在独立域名维护,并使用 CDN 进行加速。 如果把静态资源给上传到文件存储服务,即OSS,并使用 CDN 对 OSS 进行加速,则没有必要打入镜像了。...而在生产环境下也有对静态资源 CDN 强烈需求。 此时镜像大小会控制在 20M 以下。.../code # npm run uploadOss 是把静态资源上传至 oss 脚本文件 RUN npm run build && npm run uploadOss # 选择更小体积基础镜像

1.8K10

为什么要使用 package-lock.json

A guide to using package-lock.json in NPM 在本文中,我们将介绍 package-lock.json 为什么重要,以及如何NPM CLI 一起使用。...上面的问题是,如果 4.17.x 版本存在一个错误,则我本地设置将会失败,但是发布商版本将继续在旧版本正常运行。 在生产环境中可能会发生同样事情,并且你不知道为什么它会失败。...如何使用NPM CLI 当你首次在新项目中使用 NPM 时,它会自动生成 package-lock.json。 然后,你就可以正常使用 NPM 了。...字符 ^ 告诉 NPM 检查在 1.X.X 范围内是否有较新版本,如果有,则进行安装。类似地,〜字符只会出现在热修复程序或 1.4.X 。...其目的是要在某些环境中使用,例如构建服务器时以自动方式进行安装等。

1.3K20

如何在K8s设置生产EFK?(

在Kubernetes集群运行多个服务和应用程序时,统一日志收集不可或缺,Elasticsearch、Filebeat和Kibana(EFK)堆栈是目前较受欢迎日志收集解决方案。...在本教程中,我们将为部署在集群中应用和集群本身设置生产级Kubernetes日志记录。将使用Elasticsearch作为日志后端,同时Elasticsearch设置将具有极高可扩展性和容错性。...HPA(Horizontal Pod Auto-scaler)部署在客户端节点,以实现高负载下自动弹性伸缩。...,你会看到它们之间master节点选举。...在数据节点Pod情况下,我们要做就是使用K8s Dashboard或GKE控制台增加副本数量。新创建数据节点将被自动添加到集群中,并开始复制其他节点数据。

2.6K20

什么时候不能在 Node.js 中使用 Lock Files

这通常是由于出错机器和你自己机器系统底层依赖性不同结果。所以 yarn 和 npm 在引入了所谓“lock file”,来跟踪你依赖项确切版本。...快速摘要(tl; dr) 如果你开发像 Web 服务器之类程序,那么 lock file 是非常有用。但是如果将库或 CLI 发布到 npm,则永远不要发布 lock file。...如何发布模块 与某些人想相反,你发布到 npm 内容并不总是与 GitHub 或项目中内容完全相同。...执行 "npm pack --dry-run" 那个 tarball 将被上传到 npm注册表。运行此命令时你可能会注意到加入你已经有了一个 package-lock.json,它实际没有被捆绑。...禁用 lock file 并收缩包装 首先,应该停止跟踪我们 lock file。

1.4K30

npm 和 yarn 你选哪个?

一些开发人员渴望朝着某个方向前进,有时他们会花费大量时间来尝试,去做出实际对他们工作几乎没有什么影响决策。...2015:bower 输给了 npm ? 2015:node_modules 被修改为扁平化文件结构!? 2016:left-pad成为当时新闻头条 ? 2016:yarn 发布 ?...package-lock.json 是他们新工具,shrinkwrap 被放在一边 package-lock.json 开始与 yarns 锁定文件竞争 2018:npm ci 发布 ?...直接用 package-lock.json 构建代码 没有代价高昂依赖项安全性分析和版本分析 大大减少了在构建服务器构建时间! 2018:npm 6 发布 ?‍...避免使用 node_modules,而是为项目中每个依赖项创建一个带有哈希值文件 尚未做好投入生产环境准备 … 哎… ? 如我们所见,yarn 发布后,npm 受到启发(并被迫?)

1.3K20

npm5 新版功能特性解析及与 yarn 评测对比

下面就来对主要修改点做详细介绍和对比: 特性一:锁文件(lockfile) package-lock.json 本次 npm5 新增了 package-lock.json 文件,在操作依赖时默认生成,...除此之外,package-lock.jsonnpm-shrinkwrap.json 在使用场景也有以下不同点: package-lock.json 用于开发人员锁定版本使用,应该提交到版本控制,...和 yarn 差异 手动修改 package.json 依赖版本: 我们已经知道,生成 package-lock.json 后,重复执行 npm install 时将会以其记录版本来安装。...这时如果手动修改 package.json 中版本,重新安装也不会生效,只能手动执行 npm install 命令指定依赖版本来进行修改。...但从速度上来说 yarn 貌似还是更快一点,也没有足够理由停止使用 yarn。 综上我个人建议是如果你已经在个人项目使用 yarn,并且没有遇到更多问题,目前完全可以继续使用。

5.5K70

前端包管理工具 npm yarn cnpm npx

1.npm 和 yarn 区别和联系 2.package.json和 package-lock.json 是干什么,有什么用 3.npm install 之后发生了什么 4.如何发布一个自己npm包...; 从registry仓库中下载压缩包(如果我们设置了镜像,那么会从镜像服务器下载压缩包); 获取到压缩包后会对压缩包进行缓存(从npm5开始有的) 将压缩包解压到项目的node_modules文件夹中...-D 强制重新build npm rebuild 清除缓存 npm cache clean yarn 早期npm 安装依赖速度慢,依赖管理混乱,所以提出了yarn yarn通过缓存和生产package.json...显示结果会是 webpack5,事实使用是全局,为什么呢?... :npm publish 更新仓库: 修改版本号(最好符合semver规范) 重新发布 删除发布包: npm unpublish 让发布包过期: npm deprecate 总结 以npm为切入点

82220

如何使用 docker 高效部署 Node 应用

如何生产环境部署一个 Node 应用?[1] ❞ 一个合理并且高效部署方案,不仅能够实现快速升级,平滑切换,负载均衡,应用隔离等部署特性,而且配有一套成熟稳定监控。...kubernetes 把 Node 应用视作一个服务端应用黑盒子,完美匹配了以上条件,越来越多团队把 node 部署在 k8s 。...但在此之前,需要先把 Node 应用跑在一个 Docker 容器,这也是本章主题。...,此时构建服务器需要配置服务权限 npm run migrate,数据库迁移脚本,执行数据库表列行更改操作,此时构建服务器需要数据库访问权限 npm start,启动一个 Node 服务 把运行步骤翻译为.../code # 更好根据 Image Layer 利用缓存 ADD package.json package-lock.json /code RUN npm ci ADD .

1.2K30

加速开发流程 Dockerfile 最佳实践

/code/RUN npm ciCOPY src /code/srcCMD [ "npm", "start" ]复制代码使用这种分离方式,如果 package.json 或 package-lock.json...在主机和容器之间保持实时加载该技巧和 Dockerfile 并不直接相关,但我们经常听到这样问题:在容器中运行应用程序并在主机上从 IDE 修改源代码时,如何保持代码热更新?...构建一致性Dockerfile 最重要事情之一就是从相同构建上下文(源,依赖项…)构建完全相同镜像。这里我们将继续改进一部分中定义 Dockerfile。...多阶段和匹配合适环境我们针对开发构建保持一致,但是针对生产环境如何来做到这一点?从 Docker 17.05 开始,我们可以使用多阶段构建来定义生成最终镜像步骤。...=3000WORKDIR /codeCOPY package.json package-lock.json /code/RUN npm ciCOPY src /code/srcCMD [ "npm",

84430

如何提高程序员生产率(

这个是一定要花功夫去弄好,否则反复在测试环境修改代码、增加日志、尝试运行繁琐步骤会把人逼疯。 有些IDE还可以把SVN结合起来,那就更方便了,绝对是值得推荐用法。...因为和服务器同样是LINUX,所以大部分程序开发之后可以直接放到服务器运行,都不会有什么不同。...作为开发服务器,实际负载通常很低,所以在一个物理服务器安装多套虚拟机,可以让每个项目都有自己完整一套环境,是节省成本和管理费用好方法。甚至很多工具服务器都可以是虚拟机,除了SVN。 C....因为产品、美术或者其他一些非技术人员,可能需要依赖最新代码对产品进行另外一种“开发”——添加数据内容。有一个不受程序员频繁修改调试服务器,对于他们工作效率是很有益处。...有一种实践是把SVN注释自动提交到WIKI,然后大家用RSS订阅。其实这个就是一种SVN注释自动生成微博。这种方法用来自动沟通代码修改,其实是很自动化和看起来可行

1K60

Docker | 加速开发流程 Dockerfile 最佳实践

本文我们将看到如何编写良好 Dockerfile 来加快开发流程,确保构建可重用性,并生成可放心部署到生产镜像。.../code/ RUN npm ci COPY src /code/src CMD [ "npm", "start" ] 使用这种分离方式,如果 package.json 或 package-lock.json...在主机和容器之间保持实时加载 该技巧和 Dockerfile 并不直接相关,但我们经常听到这样问题:在容器中运行应用程序并在主机上从 IDE 修改源代码时,如何保持代码热更新?...构建一致性 Dockerfile 最重要事情之一就是从相同构建上下文(源,依赖项...)构建完全相同镜像。 这里我们将继续改进一部分中定义 Dockerfile。...多阶段和匹配合适环境 我们针对开发构建保持一致,但是针对生产环境如何来做到这一点? 从 Docker 17.05 开始,我们可以使用多阶段构建来定义生成最终镜像步骤。

1.4K20

如何生产环境字段类型从INT修改为BIGINT

这是一个订单输入表,由于客户活动,需要24小时插入。一旦强行修改字段必然导致停机。 本文描述了我如何计划和执行从INT到BIGINT数据类型更改。...该技术在单独SQL服务器实例创建表新副本,并使用BIGINT数据类型,然后使用对象级恢复将其移到生产数据库中。 评估可选方案 最为直接方式就是修改表字段类型。...对象级还原 下一步是在一个单独登台服务器测试这个过程。我想看看是否可以将表对象级别恢复到具有不同名称数据库中。...在还原生产时,我使用SQL Server备份工具中对象级别恢复功能恢复了表。 创建一个触发器来停止对原始表条目 在切换表期间,一定要暂停表数据该表,可以使用触发器,停止所有对于标的增删改。...我介绍方法最小化了停机时间和影响生产服务器性能潜力,同时它允许我在单独开发实例完成大部分工作。

5K80

如何生产环境字段类型从INT修改为BIGINT

这是一个订单输入表,由于客户活动,需要24小时插入。一旦强行修改字段必然导致停机。 本文描述了我如何计划和执行从INT到BIGINT数据类型更改。...该技术在单独SQL服务器实例创建表新副本,并使用BIGINT数据类型,然后使用对象级恢复将其移到生产数据库中。 评估可选方案 最为直接方式就是修改表字段类型。...对象级还原 下一步是在一个单独登台服务器测试这个过程。我想看看是否可以将表对象级别恢复到具有不同名称数据库中。...在还原生产时,我使用SQL Server备份工具中对象级别恢复功能恢复了表。 创建一个触发器来停止对原始表条目 在切换表期间,一定要暂停表数据该表,可以使用触发器,停止所有对于标的增删改。...我介绍方法最小化了停机时间和影响生产服务器性能潜力,同时它允许我在单独开发实例完成大部分工作。

2.9K10

package-lock.json被谁改了?

[1]官方文档,并结合实践分析了一下可能原因,下面的内容都是针对 npm@7 以下情况而言npm@7 更新了 lockfiles 版本,具体会在别的文章中介绍 package-lock.json...生成逻辑 npm@5 以后 npm 会根据 package.json 生成 lockfiles 文件,目的就是为了保证生产和线上编译或者团队开发时大家生成 node_modules tree是一致,...但是即使是这样不同版本 npm 对于 lockfiles 处理逻辑是不同npm install 生成package-lock.json是什么文件?...是不同,执行 npm i 时也会修改。...,除非涉及到对包调整,其他情况下建议使用 npm ci 来安装依赖,会避免异常修改 lockfiles,持续集成工具中更推荐是用 npm ci,保证构建环境准确性,npm i 和 npm ci 区别可以参考官方文档

2.9K20

关于 npm 和 yarn 总结一些细节

] 如何理解?...npm3 以前,采用了 flatten【扁平】机制来处理,使更多包扁平化,但是机制很不稳定,来回修改 npm5 以后逐渐采用 dedupe【扁平且去重】机制,这个可以理解为升级版 flatten 机制...一步获取到是一棵完整依赖树,其中可能包含大量重复模块。比如 A 模块依赖于 loadsh,B 模块同样依赖于 lodash。在 npm3 以前会严格按照依赖树结构进行安装,因此会造成模块冗余。...一步会获取到模块压缩包地址(resolved 字段),npm 会用此地址检查本地缓存,缓存中有就直接拿,如果没有则从仓库下载。 查找该模块依赖,如果有依赖则回到第 1 步,如果没有则停止。...如果手动修改了 package.json version ranges,且和 package-lock.json 中版本不兼容,那么执行 npm install 时 package-lock.json

60840

Npm vs Yarn 之备忘详单

npm 开始作为 Node 包管理器,所以你会发现很多模块可以在服务器端使用。也有很多包添加命令供您在命令行中使用。你还会发现可以在前端使用软件包。...该网站是用户发现软件包主要工具,注册表是一个关于软件包信息大型数据库,而 CLI 则是开发者如何在注册表发布他们软件包或下载他们希望安装软件包。...关于安装/更新 如何安装/更新 Npm 如何安装 Npm npm 开始作为 Node 包管理器,所以它安装是跟 Node.js 捆绑在一起。...npm 这种策略,有可能导致两台拥有相同 package.json 文件机子,实际安装了不同版本包,这可能导致一些错误。...yarn 之于 npm,有点像当年 io.js 和 node.js,殊途同归,都是为了进一步解放和优善生产力;如今,在 Yarn 影响下,npm 本身也改善不少(version >= 5.0)。

1.4K30
领券