编程大白话之-npm(Node Package Manager
对于编程工作或学习的朋友对npm(Node Package Manager : 包管理器)一定不陌生,今天对npm的基本增、删、查、改写了一个简单的步骤,让学习的朋友们可以从大白话中更容易的理解。
npm是什么?
npm 为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表,开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。
npm 由三个独立的部分组成:
1.网站
2.注册表(registry)
3.命令行工具 (CLI)
看了上面一段话,初次接触的朋友能理解意思么?
其实就是和NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的一些问题。通过输入 "npm -v" 来测试是否成功安装,成功会提示版本号。
常见的使用场景有以下几种:
1.允许用户从NPM服务器下载别人编写的第三方包到本地使用。
2.允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
3.允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
下面重点给大家描述一下操作的步骤:
- 使用时在新建的文件夹内通过Git Bash 打开服务控制器
- 创建package.json文件
- 输入npm init (初始化你的npm)会提示每一个设置项由你来自由填写内容,最后会提示yes时,写y回车便会创建一个package.json文件。
2.直接输入npm init -y来直接自动生成默认的package.json文件。
- 通过code将文件夹打开,并创建一个index.js的入口文件
- 再次通过Git Bash 输入npm adduser来创建一个用户
- 按照提示输出正确的用户名、密码、邮箱
2.注册成功后,需要登录自己的邮箱进行确认,并登录npm网页
Htao.jpg- 操作完之后我们便可以在Git Bash上通过npm login登录自己的账户
1.输入正确后会提示,账户登录成功
-
登录成功后,我们可以将我们自己创建的文件包发送到自己的账户上通过输入npm publish +自己的文件夹名字
-
操作完成后我们可以再通过npm publish查看是否上传成功
1.我们从第三行可以看到自己上传的账户名已经上传成功
2.我们登陆npm官网,查看自己的账号上传成功的包就会有所显示
Htao.jpg- 既然可以上传,那么就可以卸载(24小时内可随意卸载,超时要向网页提出申请)通过输入npm unpublish +文件夹名字 +@文件名的版本号
1.当提示下面信息时,说明你指定的文件已经卸载完成
2.我们在网页刷新自己的npm页面
此时我们可以看到,刚才存在的包已经被删除
- 下载包:
1.我们在当前文件夹下,在Git Bash中输入ls, 会显示出该文件夹下的所有文件
2.输入npm install -S express 来下载express 包 (-S代表生产模式下,在程序运行中需要使用的包)
显示+已经下载完成,版本号为@4.17.1
打开code中package.json文件,我们可以看到下载的包存储位置
dependencies(生产依赖,在上线的真实环境下存在)
- 另一种npm install -D koa 来下载koa包 (-D代表开发模式下,存放一些在程序实际运行的时候并不需要的包D)
显示+已经下载完成,版本号为@2.7.0
1.打开code中package.json文件,我们可以看到下载的包存储位置
devDependencies(开发依赖,在发开环境下有,提交上线时会将其剔除掉)
- 卸载包
1.通过npm uninstall -D koa 就可以将koa包将其卸载
2.卸载后文件会自动从json文件中删除
Htao.jpg- 简写的方法:(多个包名之间用空格隔开)
1.下载生产依赖dependencies
npm i -D => npm install -dev 包名,包名,包名
2.下载开发依赖devDependencies
npm i -S => npm install -save-dev 包名 - 全局安装的路径命令
1.npm i -g 包名 会自动将包,下载到全局作用域中,默认的node文件
npm i -g express
- 依赖包
1.dependencies-依赖包列表,如果依赖包没有安装,npm会自动将依赖包安装在node_module目录下
具体看一下怎么操作在package.json文件中 手动填写
我们在Git Bash中输入npm i (简写的方法),文件就会自动下载
Htao.jpg查看文件夹,自动创建了文件夹,并下载好了文件
Htao.gif上面就是npm最基本的一些方法,可能整理的有点乱,哪里有看不懂或错误的地方,希望大家多多指出!~~