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 //强制删除
假如你的包没用,建议删除,以节省公共资源。
更新包
- 修改代码,保存。
- 更新版本号。可更新。package.json修改:只能改大,不能改小。
- 重新publish
npm问答包的问题
包的格式是什么?
格式: ● 一定要有 package.json这个文件。 它是用来说明包包。(name, ersion, description, author, dependencies, …). npm init --yes ● 有自己的代码文件。这个代码文件要在package.json中的main中声明。
在上传到npm之前,我们需要切换镜像吗?
需要,我们必须要把代码上传到npm的官网。 通过 nrm use npm 来切换
在上传时,对包名有约定吗?
有。 1. 不能与现有包重名;2. 包名只能是小写字母+数字+中划线
上传的命令是什么?
是 npm publish
上传出错的可能性有?
- 你的帐号还没有通过验证 (在你登记的邮箱里,会收到一封邮件,要去点击确认)。 qq邮箱好像不支持在手机中操作, 建议在pc中浏览器里进行操作。
- 没有登陆, 没有做npm adduser
- 网不好!
如何对包进行版本更新?
- 更新代码,准备重新发布
- 升级版本号(只能改大,不能改小)。 在 package.json中去修改version值
- npm publish
如何去下载包
命令:npm i 包名
- 在另一个项目中去下载包
- 为了提升下载速度,我们会切换镜像到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