npm 是什么?
npm 是什么?
本文写于 2020 年 6 月 16 日
最近帮几个同学装开发环境,发现他们会各种“卡死”在 npm 安装一些包的过程中。
他们会非常纠结这个命令我明明敲的和网上差不多,为什么错了呢?
其中一个锅,我觉得改甩给 CSDN,实在是有很多错误的解决方案被放在了网站上;另一个就是其实很多人都不会告诉新人 npm 到底是什么,只是单纯的甩给他们几条命令,任其自生自灭。
要谈 npm,那必然要先说说什么是程序员的社区。
社区
“自古以来”程序员就有着社区文化。社区即为一些拥有共同职业或者相同兴趣的人们自发的组织在一起,分享信息与资源,进行合作。
那程序员的社区干些什么呢?
- 分享源代码;
- 讨论代码问题;
- 分享学习资源和各种好玩的网站之类。
比如最大的程序员社区就是 GitHub。加入 GitHub 之后,你就可以使用社区中的别人的开源代码和项目了(注意开源协议),同时你也可以贡献你的代码,让全世界都能看见。
但是 GitHub 才几年,之前的程序员是怎么共享代码的呢?
稍微早一点,那真的很难去让所有人加入社区,可是稍微往后一点,大家都会通过网址去共享代码。
比如你想使用 jQuery,就可以使用 <script src="xxxxx"> 来在自己的网站上引入 jQuery。有了 GitHub 之后,还可以通过 clone xxxx 将代码从 GitHub 下载到本地。
但是其实还是蛮麻烦的,因为下载下来不仅要去很多的网站进行下载,而且如果有个网站挂了呢?那整个网页都会收到影响呀。
于是 Isaac Z. Schlueter 就给出了一个解决方案:用一个工具集中这些代码。之后便创建了 npm。
所谓 npm,全称就是 Node Package Manager,node 包管理器。
npm 的实现思路可以这么理解:
- 买个服务器做仓库;
- 让 jQuery、Bootstrap……等将代码提交到服务器上;
- 如果有人想用这些库,只需要把要用的库
npm install jQuery到本地; - 库的代码就会被下载到 node_modules 目录中。
这样子被使用的代码,就叫做“包”,你可以用他下载、删除很多包,所以叫做“包管理器”。
最后解释一下这几个命令:
npm install xxx
先安装 xxx,但是这样安装,只是下载了,并没有“登记”到你的项目,必须连同版本号手动将他们添加到模块配置文件 package.json 中的依赖里。
npm install xxx -S
优化上一个操作,它会自动帮你添加到 package.json 的依赖——比如 vue、react。
npm install xxx -D
跟上一个几乎一样,区别是,这个是将包添加到开发依赖——比如 prettier(格式化代码)、babel(编译代码)。
npm install -g xxxx
将 xxxx 包,全局安装到你的电脑上。
(完)
npm 是什么?的更多相关文章
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- npm 私有模块的管理使用
你可以使用 NPM 命令行工具来管理你在 NPM 仓库的私有模块代码,这使得在项目中使用公共模块变的更加方便. 开始前的工作 你需要一个 2.7.0 以上版本的 npm ,并且需要有一个可以登陆 np ...
- NPM (node package manager) 入门 - 基础使用
什么是npm ? npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 截至 ...
- Npm包的开发
个人开发包的目录结构 ├── coverage //istanbul测试覆盖率生成的文件 ├── index.js //入口文件 ├── introduce.md //说明文件 ├── lib │ ...
- npm package.json属性详解
概述 本文档是自己看官方文档的理解+翻译,内容是package.json配置里边的属性含义.package.json必须是一个严格的json文件,而不仅仅是js里边的一个对象.其中很多属性可以通过np ...
- npm 使用小结
本文内容基于 npm 4.0.5 概述 npm (node package manager),即 node 包管理器.这里的 node 包就是指各种 javascript 库. npm 是随同 Nod ...
- Node.js npm 详解
一.npm简介 安装npm请阅读我之前的文章Hello Node中npm安装那一部分,不过只介绍了linux平台,如果是其它平台,有前辈写了更加详细的介绍. npm的全称:Node Package M ...
- 升级npm
查看npm的所有版本 运行命令: npm view npm versions 命令运行后,会输出到目前为止npm的所有版本. [ '1.1.25', '1.1.70', '1.1.71', '1.2. ...
- NPM如何更新到最新版
参考文章--npm更新到最新版本的方法 其实我们可以这样,随便新建一个文件夹例如:F:\test.按着"shift"键,右键该文件夹,选择"在此处打开命令窗口(W)&qu ...
- npm源切换
版权声明:欢迎转载,请附加转载来源:一路博客(http://www.16boke.com) 目录(?)[+] 安装 使用 列出可选的源 切换 增加源 删除源 测试速度 许可 项目主页 我们介绍 ...
随机推荐
- Servlet与JSP之间相互传值问题
一.JSP向Servlet传值 JSP向Servlet传值的方式有三种:URL后面跟参数.form表单提交.在JSP内置对象Session设置值. URL后面跟参数 JSP文件:<a href= ...
- http和https到底区别在哪
一.Http和Https的基本概念 Http:超文本传输协议(Http,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.设计Http最初的目的是为了提供一 ...
- css 迷惑的position
迷惑的position 小加发现实际开发中position使用频率很高,但很多人却对position不是很了解,导致开发中出现各种问题,现在让我门一起来看看这个迷惑的position吧~ static ...
- 让子弹飞,零成本让你的网站更快一点,boxopened http/3 (QUIC) 协议实战
最近HTTP-over-QUIC 协议被正式命名为 HTTP/3,协议带来的最大改变是协议底层将采用UDP协议,而不再是TCP协议,这样的好处吗,就是更低时延,更好的拥塞控制,更精确的RTT时间,更高 ...
- IDEA修改代码后不用重新启动项目即可刷新
1.File--Settings--Build 2.Build,Execution,Deplyment--Compiler 3.选中打勾 "Build project automatical ...
- 关于iOS 二维数组,对象映射的问题
数据格式如下: 遇到的问题是二维数组的 对象无法 通过 yymodel 直接实力话 ~~~ -"scoring_probability_distribution": [ -[ -{ ...
- python---希尔排序的实现
def shell_sort(alist): """希尔排序""" n = len(alist) gap = n // 2 # 插入算法执行 ...
- ssm整合-ssmbuild
目录 项目结构 导入相关的pom依赖 Maven资源过滤设置 建立基本结构和配置框架 Mybatis层编写 Spring层 Spring整合service层 SpringMVC层 Controller ...
- 如何规避容器内做Java堆dump导致容器崩溃的问题
写在前边 最近公司生产环境的容器云上出了个性能问题,为了做性能分析,使用 JDK 自带的 jmap 收集堆dump,出现了内存溢出导致了容器崩溃. 本篇文章将带你探究,如何规避容器内做堆 dump 导 ...
- 今天写了一个可以测试并发数和运行次数的压力测试代码。(Java)
今天写了一个可以测试并发数和运行次数的压力测试代码 介绍一下为什么会写这么一个工具. 介绍一个这个工具怎么用的. 背景 最近在开发CoapServer端,以及模拟设备侧发送数据调用开发好的CoapSe ...