处理完JavaScript历史上戏剧性的事件之后,npm公布了一版新的规则,用于应对用户试图下架包的情况。

\\

新的规则增加如下声明:

\\

  • 版本更新少于24小时的包允许下架; \\
  • 超过24小时的包的下架需要联系npm维护者; \\
  • 如果有npm维护者参与,npm将检查是否有其他包依赖该包,如果有则不允下架; \\
  • 如果某个包的所有版本都被移除,npm会上传一个空的占位包,以防后来的使用者不小心引用怀有恶意的替代者。\

在新规则的详述文档中,npm提供了不同场景下的几个例子说明新规则如何运作。

\\

回顾最近的left-pad包下架事件,新规则将能阻止作者Azer Koculu下架他公布的包,因为这些包的版本超过24小时且有很多依赖。

\\

npm认可有下架包的权利的重要性,但是对于个体来说,对整个社区负责更加重要:

\\

\

这个特性非常重要和合法,因此我们不会移除它,不过我们现在显著改变了下架包的方法和下架包的规则。这个规则是平衡开发者个人权利和维护开源社区的团结的第一步。

\

\\

社区的反应各不相同,不过reddit上的评论列表记录了新规则对开源社区的的意义。

\\

查看英文原文:Npm Updates Policy on Removing Packages

\\


感谢张龙对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

Npm更新移除包的规则相关推荐

  1. 如何使用npm更新项目依赖包

    NPM(Node Package Manager,结点包管理)是一款用于管理 Node.js 依赖包的工具.通过 NPM,开发者可以快速地安装.卸载.更新等项目所需的依赖包,从而有效提高开发效率.节省 ...

  2. 使用npm更新所有依赖包到最新版本

    本篇文章参考文章 - npm包之npm-check-updates 文章目录 npm-check-updates 背景交代 npm-check-updates   一键升级所有依赖的插件为 npm-c ...

  3. npm更新包(全局单个,项目单个,全局所有,项目生产环境,项目开发环境)

    npm-check检查npm依赖包是否有更新,错误以及不在使用的. 安装npm-check npm install -g npm-check npm全局更新包 npm-check -u -g npm更 ...

  4. NPM:nodejs官方包管理工具的简介、安装、使用方法之详细攻略

    NPM:nodejs官方包管理工具的简介.安装.使用方法之详细攻略 目录 NPM之nodejs官方包管理工具的简介 NPM之nodejs官方包管理工具的安装 NPM之nodejs官方包管理工具的使用方 ...

  5. npm 更新 npm_您可以使用8 npm技巧来打动同事

    npm 更新 npm by Adir Amsalem 由Adir Amsalem 您可以使用8 npm技巧来打动同事 (8 npm Tricks You Can Use to Impress Your ...

  6. npm 更新 npm_这些NPM技巧将使您成为专业人士

    npm 更新 npm By Carl-Johan Kihl 卡尔·约翰·基尔(Carl-Johan Kihl) After using NPM for almost 8 years, I've lea ...

  7. IntelliJ IDEA 中的Java Web项目的资源文件复制新增如何更新到部署包中?

    文章目录 resources目录下的文件复制新增 webapp目录的文件复制新增 IntelliJ IDEA 中的Java Web项目的资源文件如果复制新增,正常的重新部署.重启服务器.update ...

  8. Java包命名规则_包命名规范

    文章目录 个人项目的包命名规则 团队项目的包命名规则 包前缀说明 包名通常是一个单词,且单词通常是名词,字母全部小写,如果多个单词使用下划线连接. 个人项目的包命名规则 individual(个体): ...

  9. anaconda安装python包_Anaconda:安装或更新 Python 第三方包

    conda和pip简介 conda conda是包及其依赖项和环境的管理工具. 适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/C++, F ...

  10. J2EE开发时的包命名规则

    http://www.blogjava.net/paulwong/archive/2012/04/15/374675.html 转一个J2EE开发时的包命名规则,养成良好的开发习惯 代码编写规范目的: ...

最新文章

  1. iphone如何信任软件_你还在用大众点评吗?评价软件失去信任还如何活下去
  2. CPLEX在Linux上的安装与配置
  3. POJ 3356 水LCS
  4. Session 的钝化与活化
  5. c盘users的用户名怎么改_怎么修改iPhone备份文件夹路径 iPhone C盘路径修改教程【详解】...
  6. 外部js php变量,在外部JS文件中包含PHP变量?
  7. python编程设计_程序设计入门—Python
  8. 计算机应用基础 东师 离线,东师1609计算机应用基础离线作业(8页)-原创力文档...
  9. mysql 5.1.48-log_mysql5.1+syslog8.3+loganalyzer配置过程
  10. 【rmzt】小清新美女win7主题_7.14
  11. python编辑器怎么放大字体_增大python字体的方法步骤
  12. 企业微信邮箱登录入口在哪里?
  13. 小猫爪:i.MX RT1050学习笔记24-eDMA之eDMASAIASRC的“纠缠”(RT1170)
  14. 大数据概览以及当下实用的主流开发
  15. ubuntu命令行启动浏览器_如何从终端启动默认Web浏览器?
  16. c语言输出字符串需要取地址吗,char *str;……printf(%p,str);是输出地址吗?还是只与str说占空间大 - C语言论坛 - 编程论坛...
  17. 微型计算机日常的应用领域,计算机的应用领域有哪些?
  18. Mac系统升级后导致AS不能使用SVN
  19. linux mysql 邮件_linux中mysql 自动备份发邮件 到指定邮箱代码
  20. IC REG BUCK ADJUSTABLE 3A 8SOIC

热门文章

  1. 敏捷测试与普通测试的区别
  2. 用SQL批量插入数据(原创)
  3. 远程连接(加密验证问题解决)
  4. Codeforces 853A 贪心 优先队列
  5. 洛谷 P1509 找啊找啊找GF(复习二维费用背包)
  6. server.MapPath的相对路径问题
  7. 应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件...
  8. Eclipse注释快捷键、如何生成API以及可能遇到的问题解决
  9. 使用 Kubeadm 安装部署 Kubernetes 1.12.1 集群
  10. python,错误、调试和测试