Nodejs相关:微博上说 npm 咋滴了?
Nodejs相关:微博上说 npm 咋滴了?
http://weibo.com/5042408187/DnCD72Bev
后端随便一个语言个个比我年纪大。
前端近几年出了很多搞不懂的东西,逼格一下子高了许多。
可有些东西甚至还没来及看就已经被摒弃了。。
实在是搞不懂。
我也想知道。。。。。
求前端长期合作
web 呀,用户的接口,这部分就是体力活所以前端需求量大。
PHP 的包管理是加载到项目目录运行的,这个是每次从线上加载?
我们前端圈真乱。
蛮同情前端的,那么多那么复杂的东西要学。
好好写个 js css 就足够了啊……艾玛我不懂我瞎说的
PHP 的包管理是加载到本地的,前端这个是每次从 github 加载?
一样是加载到项目目录,但是现在部署编译就会出错,而且被撤除的包很有可能被未知的人重新占用上传木马包,这个波及面就很广了
搜嘎,也就是说线上正在跑的基本不受影响咯?
部署的时候会去下载所有的包,所以不能部署了吧
刚刚介入前端,情不自禁的感叹,这他妈怎么那么多幺蛾子
蛮同情后端的,一直都没什么新东西……
我们前端圈真乱
感觉上大学这几年除了超级多东西,真的是还没来得及看就已经过时了。
2333333
汉字几千年都是汉字,但年年都有新用法。
>前端近几年出了很多搞不懂的东西,逼格一下子高了许多。
作为一个 Node.js 服务器端工程师,表示 NPM 并不仅是前端在使用,比如 left-pad 这个包和浏览器并没有直接关系。
>PHP 的包管理是加载到项目目录运行的,这个是每次从线上加载?
PHP 的包难道不是从仓库下载的么?如果作者把包从 packagist (不太理解 packagist 是否允许撤下已发布的包)或 GitHub 上撤下也是一样的。
>民心已失。我猜很快会有一个新的完全开放的平台出来。
我个人认为只是 太矫情了而已, NPM 对于解决包名纠纷有很明确的规则( https://docs.npmjs.com/misc/disputes ),这是一次很透明的操作。如果对方持有商标,我相信在大部分平台都是可以拿到对应的名字的。
>npm 目前的机制基本无法处理这次危机,超过 250 个项目被移除,其他依赖项目不仅需要寻找替代品,还要防范其他人伪造同名库。
一方面可以修改 unpublish 包的规则(满足特定规则才可以 unpublish 已发布的版本),如果作者的包使用一个自由软件许可证发布的话,从法律上来说,不允许删除也是完全可行的。另一方面可以继续推 Scoped packages ( https://docs.npmjs.com/misc/scope ),像 GitHub 一样以自己的用户名为前缀,虽然用户名可能也有纠纷,但应该会比包名的纠纷少一点。
也就是说不会影响线上跑的咯?
已经在跑的肯定没事
只有重新部署的时候会出问题
让我安安静静做一个 iOS 的美男子。。。
据某新闻说, NPM 已经 un-unpublish 那个包含 left-pad 的包?
是作者吧。
我一直对 node 这帮人搞不懂,一个 leftpad 也有必要做成包?两三行代码的事,你需要这个功能为什么不是写在 util.js 里而是引入个别人的包?
A couple of hours ago, Azer Koçulu unpublished more than 250 of his modules from NPM
Unfortunately, one of those dependencies was left-pad.
Azer Koçulu 是作者吧?
“un-un” <-> “un” 我们俩说得并不是同一个。
npm 就是包太多了,各种依赖,当然 php 的 composer 也一样
很多功能就应该集成到内核里去
去中心化的包管理器,也有弊端,没有统一的维护啊
任何的包管理器都是这样啊
所以才会有很多人会把各种依赖直接手动包含到项目里面
比如 Java 和 Android 很多人都喜欢直接把 Jar 包包含在项目里面
甚至直接提交的代码库里面
NodeJs 也有不少人会直接把 node_modules 直接包含在代码库里面
nodejs 依赖问题终于爆发了吗…
看来我能自己造的轮子就不随便用 lib 还是有道理的。。。不过最麻烦的还是构建工具
讲道理 我认为 npm 就不应该有 unpublish 的机制 这次的事就是个教训 得轮子者岂不是掌控一切?
LOL 昨天公司所有 build 全是红的, notice 乱飞,好不壮观
事件梳理(按时间序):一致力于开源社区的程序员 Azer 的某 npm module 因为和一公司重名,被 npm 强行更换了所有权,于是他愤然从 npm 中撤下了所有自己的 module ,其中包括只有 11 行代码的 left-pad 。于是,把它作为依赖的众多库纷纷编译失败,其中包括 React, Babel 等。有人写了篇文章批评现在程序员都不懂得写程序了吗?在 HN 上引发热议。
https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.403drisws
https://news.ycombinator.com/item?id=11348798
- npm 包数量远超 PYPI, CPAN 。原来是通过这种方式。。。
2. theregister 居然都能报道这新闻,国内媒体汗颜啊。
其实不一定有用
如果不可以 unpublish
作者也可以随时换上一个爆掉的版本 并且标示为版本兼容
比如大家用了 “~1.0.0 ” 然后他出个 1.0.1 兼容 1.0.0 那么默认情况下 结果也是一样的
除非有人手动锁定版本 “ 1.0.0 ” 但是 我记得 npm 允许对已发布的版本做强行修正
比如 发一个爆掉的版本 仍然是 1.0.0
那么你也没办法了
除非像 svn 那样 完全禁止修改历史
咱圈真乱。。。。。。
怎么说呢。。 unix 的哲学问题
这次的问题。。不是 left-pad (作者还有其他 200 多个库呢,而且作者也是早期 npm 活跃用户。。),不是说代码少。。这个库就没价值(这个是一个价值观的问题,如果大家都是可信的,我又何必写一个 util 自己维护呢?)。这次的危机算是一个潜在问题的大爆发
怎么说呢。这次的危机到今天才爆发。。可以说明之前大家还是挺自律的。。。
之前来说 NMP 的包管理是发展最快最成功的,以至于其他语言都向其学习,不就是因为 npm 是集中管理;好了现在又在说集中管理的弊端,那你们学学 php 又 perl 又 pecl 又 composer 吧,科科
昨天好死不死把 node_modules 删了,结果晚上装不上了 23333
>PHP 的包管理是加载到项目目录运行的,这个是每次从线上加载?
PHP 的包难道不是从仓库下载的么?如果作者把包从 packagist (不太理解 packagist 是否允许撤下已发布的包)或 GitHub 上撤下也是一样的。
还是没懂,再请教下。。。 php 的包是从仓库下载的,但是下载后,本地会有缓存。所以,我理解成,已经在跑的项目,都是曾经下载过的,所以没有影响。 npm 是怎么个逻辑?
说实话, 1 行函数,还真心不如复制粘贴。
奇怪,我 21 小时前发的 http://v2ex.com/t/265720 这个却无人问津…
up to you
贵圈真乱!
你明显没做记者的天赋。人家的链接里,有危机二字。
😄,以前瞎聊瞎扯淡的事情终于还是发生了。
233333333 喜闻乐见。
不过我手贱这周刚开始看 react 这些前端流行的玩意。。。明天分享还打算聊聊前端这些。。。这咋整一下跑题了。。。 2333333
npm 也是啊=。=
你理解的没有错,已经把包下载下来的自然没有问题
就是,大多数源码只保留一个 packages 的清单,当你重新构建,也就是重新吧 packages 落下来的时候会因为包不存在而无法正确构建
是的,上面有人回答了,已经再跑的不受影响,除非重新 update
一般人都不会对英文标题敏感的,毕竟非母语。
下次记得改个标题弄个大新闻😂
前圈好乱😂 (无恶意
上大学这几年火了 node react Vue Gulp 各种轮子,我都跟不上轮子了。
不知道 php 的 composer 存不存在这类问题,风险挺大的, update 过来的代码是不是 ok 的能保证吗
nodejs
-> npmjs.COM
npm is the package manager for javascript.
$ npm install express
PHP
-> getcomposer.ORG
Dependency Manager for PHP
-> packagist.ORG
The PHP Package Repository
$ composer require monolog/monolog
一个世界是包管理
一个世界是依赖管理+包仓库
开发境界就不一样,后者明显对面向对象的理解要强一点。
前端啊,你们还是太年轻太简单。
附注: PHP 是宇宙间最好的语言!
说到底就是 NPM 的员工傻逼!!!
贵圈真乱
http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/
有了包管理器,大家都变懒了,简单的东西搞复杂
后端前来围观,贵圈真乱……
composer 貌似还有一点 namespace 的概念, npm 的 namespace 是私有模块,记得还要收钱的。
吓得我立马 tar -zcvf hollyshit.tar.gz node_modules 😂😂😂😂
其实就是一群后端转前端的人在带动,前端的一个趋势,至于效果怎么样,是不是本末倒置,真要打个大问号。
😂
从后端的角度,对于前端各种框架实在是凌乱了。
npm 要是有 ruby bundler 那么好用就好了
像 facebook,ali,tencent,baidu 一类大公司,项目多,需求多,人家为了统一维护,节省人力物力,前端搞些框架,合情合理.
一些跟屁公司,非得跟着上,用着一些看似高大上的前端技术,用大炮解决着手枪问题.原生 JS 代码处理的问题,给你来些 MVC,mvvc 呀,七七八八.想想看,一步能完成的事,要给你拆开,各种代码调用,效率低下,还要花时间去学,花精力去完善后期框架造成的各种坑,搞不好,要去看框架源码.哪个框架大升级,还得老代码测试,修正,重写…
小公司很多是让那些高大上公司出来,当构架师的鸟人们坑的.招人难招,还得给高工资 .本来想省时省钱省事,全变成了 GDP 良心投入.
cao 这页面怎么搞的
外包还是做产品?
奇怪,为啥只有进了这页面是黑色的?
外包,你技术如何,加个联系方式
敢想敢说👍 跟我想法一样
分类到 nodejs 节点下了,就有这个奇丑难以阅读的页面样式。。
看到写前端的写单元测试 写 makefile 我就醉了
题主先搞明白前端,浏览器, npm 的关系~
针对“微博上说npm咋滴了?”这一问题,作为IT技术专业人员,可以提供以下分析:
npm作为Node.js的包管理器,负责安装和管理Node.js应用程序的依赖项,其稳定性和安全性对开发者至关重要。如果在微博上看到关于npm的负面评论,可能涉及以下几个方面的问题:
-
安装依赖问题:
- 某些模块没有正确安装或版本不匹配。
- 示例解决代码:删除
node_modules
文件夹后重新安装。
rm -rf node_modules npm install
-
网络问题:
- npm无法连接到npm仓库,导致无法下载依赖模块。
- 解决方法:更换npm源或使用代理服务器进行安装。
-
权限问题:
- npm安装模块时权限不足。
- 解决方法:以管理员身份运行命令提示符或在安装命令前加上
sudo
(适用于Mac或Linux系统)。
-
其他问题:
- 可能是由于其他未知因素导致的npm错误。
- 解决方法:更新Node.js和npm到最新版本,或搜索npm错误提示信息以获取更详细的解决方法。
总之,npm是一个强大的工具,但也可能遇到各种问题。作为开发者,需要了解这些问题的原因和解决方法,以确保开发过程的顺利进行。