npm-基本介绍
npm全称Node Package Manager(node 包管理器),它的诞生是为了解决 Node 中第三方包共享的问题。npm不需要单独安装。在安装Node的时候,会连带自动安装npm。npm -v可以检查安装的情况。(都是在小黑窗里运行)
npm 公司提供了一个全球最大的第三方包共享平台:https://www/npmjs.com/
npm下载使用包
随便新建一个文件夹或者在已有的文件夹里打开小黑窗
输入 npm init --yes 初始化项目
安装包 npm i 包名
引入使用 const 包名=require('包名')
想用什么包自己去网站里面找,包具体的使用在网站上也都有提示
初始化的时候会生成一个package.json文件,这个package.json文件后期是可以手动修改的
安装包的时候会生成一个node_modules文件夹,本地安装的包都会安装在这个文件夹里
当你添加包的时候
- 如果有package.json
(1) 修改package.json文件。根据开发依赖和生产依赖的不同,决定把这句记录在加在devDependencies或者是dependencies列表中。
(2) 修改node_modules文件夹
-
- 如果有node_modules文件夹,则直接在下面新建名为XXX的文件夹,并从npm中下来这个包。如果这个包还有其它的依赖,则也会下载下来。
- 如果没有node_modules,则先创建这个文件夹,再去下载相应的包
- 如果没有package.json。会给一个警告信息。
全局安装包和本地安装包
我们通过npm i 来安装包其实也是有很多细节的,分为全局安装和本地安装,本地安装也分为两种.单纯用语言表达太抽象了,直接上图
全局的地址也不一定是这个,可以通过命令
npm root -g // 查看全局包的安装目录
npm list -g --depth 0 //查看全局安装过的包
全局安装包也特殊一点
命令:`npm install -g 包名` 或者 `npm install 包名 -g`
全局包与本地包的区别
- 全局安装的包一般可提供直接执行的命令。我们通过对一些工具类的包采用这种方式安装,如:
gulp, nodemon, live-server,nrm等。 - 本地安装的包是与具体的项目有关的, 我们需要在开发过程中使用这些具体的功能。**
下载包-修改镜像源
是不是感觉下包速度有点慢,因为如果不设置,默认下包地址为国外,自然就慢了,
不过国内大厂淘宝出钱干了一个镜像服务器出来了,下载速度会快很多.只要把下包地址改为淘宝的镜像源就可以了
检查当前的下包地址:
npm config get registry
把下包的地址切换为国内的淘宝服务器
npm config set registry=https://registry.npm.taobao.org/
这里可以做个演示,安装全局包nrm修改镜像源(百度上面比比皆是)
下载使用的操作步骤
共三步
- 第一步: 全局安装
npm install nrm -g - 第二步:列出所有的源信息(*)标注的就是当前使用的源
nrm ls - 第三步:根据需要切换源。例如:指定使用taobao源。
nrm use taotao
如果因为什么权限之类的在第一步安装包的时候就报错,显示在此系统上禁止运行脚本
-
- 管理员方式打开vscode,打开小黑窗
- 执行
set-ExecutionPolicy RemoteSigned; - 在出现的选项中,输入
A,回车。即可
如果还不行,请自行百度.一定要多百度,要知道我们可是百度的战略合作伙伴,平常工作可以说是面向百度编程了.如果百度都解决不了
想不想写个包给别人用
npm项目初始化
在本地磁盘上创建一个空文件夹。取名字一定要注意,请先去npm网官去确定一下,这个项目名是否已经被占用了。(如果这个名字已经被占用了,则你是无法向npm上上传的)。
不过我不建议去官网上查,可以先创建,然后在文件夹里点开小黑窗
输入npm view 包名
这个命令用来查看 某个包的信息 如果返回404,说明这个项目名在npm官网上找不到,此时你就可以使用。 否则,说明不可用。
名字可以用就初始化项目
npm init --yes
在默认情况下,index.js是这个项目的入口文件,所以创建一个index.js文件.把你做的功能都写入这个js文件 ,写完后就往下看
切换当前npm源到官网
由于我们需要把包上传到npm上,所以要先确保当前的npm源是npmjs.org
npm config set registry https://registry.npmjs.org
把npm下包源切换到官网
连接npm
npm adduser
这个命令需要输入四个信息以供连接上npmjs:
- 用户名
- 密码
- 邮箱(是你在npmjs官网上注册时使用的信息)
- 校验密码。它会向你的邮箱发邮件
用户名就是你注册的官网账户 密码就是密码
输入密码的时候是最坑的,输入的时候什么都没有,密码那里一直是空白.所以要注意,虽然那里什么都没有,其实你已经在成功输入了.
全部输入完成后你也可以通过如下命令检查自己是否连接成功了。
npm who am i
如果成功了,则可以进行最后一步了
npm publish
当然如果半路想退出了
npm logout
上传成功后大致上显示的就是这样
npm notice
npm notice package: tool61@1.0.0
npm notice === Tarball Contents ===
npm notice 1.3kB index.js
npm notice 220B package.json
npm notice === Tarball Details ===
npm notice name: tool61
npm notice version: 1.0.0
npm notice package size: 855 B
npm notice unpacked size: 1.5 kB
npm notice shasum: 3bfba7bc92e242810a850ac39ded7ebe992a6d9c
npm notice integrity: sha512-VoRuxxbcGzXen[...]v3tKWYUT1B1AQ==
npm notice total files: 2
npm notice
+ tool61@1.0.0
如果报错了
出错的可能是:
- 这个包名被别人先用了。
- 包的版本号不对:每次publish时,包的版本号都应该要大于之前的版本号。
- 文件过大。你可能需要创建
.npmignore文件来设置在打包时要忽略哪些文件。如下是一个demo.
写这么多好累,我有两本速成秘籍送给你们