资讯详情

npm包从创建到发布、删除包、更新包、require加载规则、npm 常用命令

npm项目初始化

在本地磁盘上创建空项目,将文件夹命名为myNpm。注意请先去npm网站官员确定项目名称是否已被占用。(如果这个名字已经被占用了,你就不能去npm上传)。

检查项目名是否已被占用 :

npm view 包名 # 查看此命令 包的信息 # 如果返回404,则项目名称为npm官网找不到,这个时候可以用。 # 否则,说明不可用。 
npm init --yes 

命令来创建一个package.json对你的项目,文件myNpm设置信息。

功能开发完成

在这里插入图片描述 正常开发,完成代码。默认情况下,index.js是本项目的入口文件。

切换当前npm源到官网

因为我们需要把包上传到上传npm所以首先要保证现在npm源是npmjs.org。有两个相关命令。 查看当前的npm的registry配置.

npm config get registry  # 查看当前的npm的registry配置,确保是https://registry.npmjs.org  # 如果没有,可以设置以下命令 npm config set registry https://registry.npmjs.org  # 手动设置registry 

连接npm

npm adduser 

该命令需要输入四个连接信息的信息npmjs:

● 用户名 ● 密码 ● 邮箱(你在npmjs官网注册时使用的信息) ● 检查密码。它会给你的邮箱发邮件

如果不是第一次连接,这一步可以省略。 您还可以通过以下命令检查您的连接是否成功。

> npm who am i 

如果想退出:

npm logout 

把包上传到npm

包上传成功效果 :

----------------------------------- 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.

# .npmignore /node_modules npm-debug.log /src /examples /build 

如果没有报错,说明一切。ok,你可以用你的帐号密码登陆npm,查看你的名字package是否有了myNpm

删除包

npm unpublish --force //强制删除 

假如你的包没用,建议删除,以节省公共资源。

更新包

  1. 修改代码,保存。
  2. 更新版本号。可更新。package.json修改:只能改大,不能改小。
  3. 重新publish

npm问答包的问题

包的格式是什么?

格式: ● 一定要有 package.json这个文件。 它是用来说明包包。(name, ersion, description, author, dependencies, …). npm init --yes ● 有自己的代码文件。这个代码文件要在package.json中的main中声明。

在上传到npm之前,我们需要切换镜像吗?

需要,我们必须要把代码上传到npm的官网。 通过 nrm use npm 来切换

在上传时,对包名有约定吗?

有。 1. 不能与现有包重名;2. 包名只能是小写字母+数字+中划线

上传的命令是什么?

是 npm publish

上传出错的可能性有?

  1. 你的帐号还没有通过验证 (在你登记的邮箱里,会收到一封邮件,要去点击确认)。 qq邮箱好像不支持在手机中操作, 建议在pc中浏览器里进行操作。
  2. 没有登陆, 没有做npm adduser
  3. 网不好!

如何对包进行版本更新?

  1. 更新代码,准备重新发布
  2. 升级版本号(只能改大,不能改小)。 在 package.json中去修改version值
  3. npm publish

如何去下载包

命令:npm i 包名

  1. 在另一个项目中去下载包
  2. 为了提升下载速度,我们会切换镜像到taobao。 虽然我们上传是传到npm官网,但是,它会自动同步(例如:每隔15分钟就会通过其它镜像最新的包的信息)给其它的镜像 — taobao, cnpm…

require加载规则:

● require 优先加载缓存中的模块。同一个模块第一次require之后,就会缓存一份,下一次require时就直接从缓存中去取。 ● 如果是加载核心模块,直接从内存中加载,并缓存 ○ 加载核心模块的格式是 const xxx = require(“模块名”) 。不能写相对路径! ● 如果是相对路径,则根据路径加载自定义模块,并缓存 ○ 以require(‘./main’)为例( 省略扩展名的情况) ○ 先加载 main.js,如果没有再加载 main.json,如果没有再加载 main.node(c/c++编写的模块),找不到就报错。 ● 如果不是自定义模块,也不是核心模块,则加载第三方模块 以require(‘XXX’)为例: ○ node 会去本级 node_modules 目录下的xxx文件夹中找xxx.js ----> xxx.json ----> xxx.node(找到一个即返回),找到并缓存。 ○ 如果找不到,node 则取上一级目录中的node_modules下找 , node_modules/xxx 目录,规则同上 ○ 如果一直找到代码文件的文件系统的根目录还找不到,则报错:模块没有找到。

在module.paths命令中可以看到搜索路径中包含node_modules这个文件夹

npm 常用命令

查看

npm -v  			    // 查看npm 版本
where node   			// 查看node的安装目录
where npm   			// 查看npm的安装目录
npm root -g 			// 查看全局包的安装目录
npm list -g --depth 0   // 查看全局安装过的包

升级 npm

npm install npm --global  // 简写成 -g
npm install npm -g

初始化 package.json

npm init -y // 或者是npm init --yes

安装第三方包

// 安装当前目录下package.json中列出的所有的包
// 如果之前安装了包,又在package.json中手动删除依赖
// 它相当是删除包
npm install

// 全局安装
npm install 包名 -g  // npm install -g 包名 

// 本地安装,没有指定版本,默认安装最新的版本
npm install 包名

// 一次安装多个包,空格隔开
npm install 包名1 包名2 包名3

// 安装指定版本的包
npm install 包名@版本号

// 简写。把install简写成 i
npm i 包名

删除已安装的包

npm uninstall 本地安装的包名
npm uninstall 全局安装的包名 -g

设置npm的register

如果你不想用 nrm ,下面这个原生的命令也可以切换镜像源(从哪里下载包)。

npm config set registry https://registry.npm.taobao.org

## 所有npm i 包 都会从taobao的镜像去下载。
## 配置后可通过下面方式来验证是否成功
npm config get registry

标签: 二极管db220b

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台