系列文章目录
前言
一、npm是什么?
npm(node package manager 简称:node包管理工具),是世界上最大的开放源代码的生态系统。,我们可以通过npm下载各种各样的包,这些源代码我们可以在npmjs找到。
程序员的社区文化:
拥有共同职业或兴趣的人自发组织在一起,通过分享信息和资源进行合作,虚拟社区参与者经常会在线讨论相关话题,或访问某些网站。
最大的前端社区就是GitHub,我们可以通过GitHub来:
- 分享源代码(线上代码仓库)
- 讨论问题(lssue列表)
- 收集学习资源和常用的网站
- 可以使用别人贡献的代码,我们也可以贡献代码给别人使用
二、共享代码
1.前端是如何共享代码的
在GitHub还没兴起的年代,前端是通过网址来共享代码的,比如,我们想使用jQuery,那么我们点击jQuery网站上提供的连接就可以下载jQuery,放到自己的网站上使用。
jQuery:
GitHub兴起后,社区中也有人使用GitHub下载功能
当一个网站依赖的代码越来越多,程序员发现很麻烦
- 去jQuery官网下载jQuery
- 去BootStrap官网下载BootStrap
- 去Underscore官网下载Underscore
- ……
因此,程序员Isaac Z. Schlueter(艾萨克·施吕特)给出了一个解决方案:用一个工具把这些代码集中起来管理。这个工具就是JavaScript(运行在Node.js上),全称是Node Package Manager.
Isaac Z. Schlueter:npm创始人,现任npm首席产品官,曾任职Yahoo前端工程师,Joyent软件工程师,NPM CEO,他的GitHub
2.具体步骤
NPM的思路大概是这样的:
- 买个服务器作为代码仓库(registry),在里面放所有被共享的代码
- 发邮件通知jQuery、Bootstrap、Underscore作者使用npm publish把代码提交到registry上,分别取名jquery、bootstrap和underscore(注意大小写)
- 社区里的其他人如果想使用这些代码,就把jquery、bootstrap、和underscore写到package.json里,然后运行npm install,npm就会帮他们下载代码
- 下载完的代码出现在node_modules目录里,可以随意使用
这些可以被使用的代码被叫做包(package),这就是NPM名字的由来:Node Package Manager
三、发展
npm的发展是跟Node.js的发展相辅相成的。Node.js是由在德国工作的美国程序员Ryan Dahl写的。他写了Node.js,但是Node.js缺少一个包管理器,于是他和npm的作者一拍即合,最终Node.js内置了npm;随着Node.js的火爆,大家开始使用npm来共享JS代码,于是jQuery作者也将jQuery发布到npm了。所以现在使用npm来分享代码已经成为前端的标配。我们可以使用npm install jquery来下载jQuery代码;
Node.js:是一种javascript的运行环境,可以使得javascript脱离浏览器运行。
三、npm命令详解
npm -v #查看npm版本
npm install ModuleName #使用npm命令安装模块
npm install jquery #安装jq模块
npm uninstall ModuleName #卸载模块
npm list #查看当前目录下已安装的node包
npm info 模块 #查看模块的版本
npm install jquery@1.8.0 #安装指定版本
三、package.json
package.josn定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等数据)
1、创建package.json
npm init
npm init -y
npm init --yes 默认值
npm init npm init - yes
2、package.json文件
1)name:可以是小写,只有一个单词,没有空格,可以使用破折号和下划线
2)version:必须以X.X.X的形式填写版本号
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "main.js",
"keywords": [ "test" ],
"author": "wade",
"license": "MIT",
"dependencies": { "express": "^4.10.1" },
"devDependencies": { "jslint": "^0.6.5" }
}
3、安装模块并把模块写入package.json(依赖)
npm install babel-cli --save-dev
npm install 模块 --save
npm install 模块 --save-dev
4、dependencies 与 devDependencies 之间的区别?
使用 npm install node_module –save 自动更新 dependencies 字段值;
使用 npm install node_module –save-dev 自动更新 devDependencies 字段值;
dependencie 配置当前程序所依赖的其他包。 devDependencie 配置当前程序所依赖的其他包,只会下载模块,而不下载这些模块的 测试和文档框架
"dependencies":
{ "ejs": "^2.3.4",
"express": "^4.13.3",
"formidable": "^1.0.17"
}
^ 表示第一位版本号不变,后面两位取最新的(表示这个配置只锁定主版本号,告诉npm只取版本号是1,后面取得最新版本,不管后面写什么)
~ 表示前两位不变,最后一个取最新(锁定主版本号和次版本号)
* 表示全部取最新
空 没有符号就是三位全部锁定,必须是这个版本
三、npm下载和使用
1.下载
2.安装
3.检查
当下载好Node后我们就可以使用npm命令进行包的管理
npm --version
npm -v
本地安装包
如果你想让你的模块依赖某一个包,并且通过require加载进来那么你需要安装一个本地包,供你当前的项目依赖,又称作项目运行的依赖
npm install <package_name>
全局安装包
如果你想将安装的包,作为命令提示行的命令符,那你需要全局安装该包,比如说gulp工具
npm install <package_name> -g
npm install <package_name> --global //两者均可
检查
安装之后,在安装的根目录下会出现一个node_modules的文件夹,你面的bin目录下会存放你安装的本地包,假如我们安装了jquery那么node_modules下会出现一个jquery的文件夹,这就说明我们安装成功了
更新
在package.json所在的的根目录下执行
npm update
卸载
->本地包(删除node_modules下面安装的本地包)
npm uninstall <package>
如果我们需要将package.json记录的安装包版本信息一同删除的话,执行
npm uninstall <package> --save
//如果我们要删除开发依赖包
npm uninstall <package> --save-dev
->全局包
npm uninstall <package> -g
查看包的版本
npm view jquery versions
npm install jquery@1 -S //安装开头为1的最新版本
npm install jquery@1.11 -S //安装开头为1.11的最新版本
npm install jquery -S //最新版本
清除缓存
npm cache clean --force
查看更改镜像源
//查看当前镜像源
npm config get registry
//更改镜像源
npm config set registry https://registry.npmjs.org/
总结
分享:
一切好的友谊都是自然而然形成的,不是刻意求得的。真正的朋友,应该是心灵伴侣,能互相尊重,亲疏随缘。再好的朋友也应该保持距离。友谊是沉默的。友谊永远是双向的、自然而然的,不需要表白也不需要证明。