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) 目录(?)[+] 安装 使用 列出可选的源 切换 增加源 删除源 测试速度 许可 项目主页 我们介绍 ...
随机推荐
- Markdown语法2
二 . 低频使用的语法 下面是相对用得少的markdown语法,但也值得学习学习. 10.区块(块引用) 要创建块引用,请在段落前添加一个 > 符号: 块引用支持多段落: 块引用支持嵌套,即引 ...
- linux命令手册
常⻅系统服务命令 常用命令 作用 chkconfig --list 列出系统服务 service <服务名> status 查看某个服务 service <服务名> start ...
- "双非"应届生校招如何获得大厂青睐?(内附前端大厂面经+技术岗超全求职攻略)
写在前面的话 笔者从17年的2月份开始准备春招,其中遇到不少坑,也意识到自己走过的弯路.故写了这篇文章总结一番,本文适合主动学习的,对自己要学的课程不明确的,对面试有恐惧症的...等将来打算从事技术岗 ...
- ES6-11学习笔记--解构赋值
解构赋值:按照一定模式,从数组和对象中提取值,对变量进行赋值. 数组解构 对象解构 字符串解构 应用场景 曾经的赋值噩梦,非解构赋值数组: let arr = [1, 2, 3]; let ...
- javaweb之删除功能
对数据库的删除,主要是通过表中的一个数据查询来进行逐个删除,否则会清空整张表. 一.dao层 在dao层加入删除方法 public boolean delete(Course n) { boolean ...
- mysql find_in_set在oracle下的解决方案
比如一张表: artile (id,type,content); type:1表示文艺类,2表示小说类,3表示传记,4表示传说,等等5,6,7,8 表数据: id type content 1 3,1 ...
- 小程序申请测试appid
话不多说,直接上图: 1. 登录微信官方文档: https://developers.weixin.qq.com/miniprogram/dev/devtools/sandbox.html 2. ...
- 什么是3D建模?
一.3D建模是什么 将所见所想用立体三维的方式通过计算机技术表现出来,这就是3D建模,比如你看到了一个可爱呆萌的卡通人物又或是华丽酷炫的变形金刚,总之就是你认为美好的立体实物 你想将它用计算机技术完美 ...
- 怎么快速找出帝国CMS数据库配置文件路径及迁移网站后修改技巧!
首先,我们要了解一下帝国CMS整个目录结构,只有了解清楚结构,我们才有可能快速找到自己想要的文件,比如:帝国CMS数据库配置文件路径! 帝国CMS目录结构介绍 / 系统根目录├d/ 附件和数据存放目录 ...
- 使用加强堆结构解决topK问题
作者:Grey 原文地址: 使用加强堆结构解决topK问题 题目描述 LintCode 550 · Top K Frequent Words II 思路 由于要统计每个字符串的次数,以及字典序,所以, ...