补充知识点
在某个项目下开启小黑窗,输入npm init ,它会启动一个交互式的程序,让我们填入一些关于本项目的信息,最后生成一个package.json文件
这时我们可以 把npm init 改为 npm init --yes 可以简写 npm init -y
说明:
下载包 -修改镜像源
下包速度慢,是因为默认情况下,npm从一个名为https://registry.npmjs.org/ 的服务器上下包。这个服务器在国外,因此下包速度会非常慢。
解决方案:把npm的下包地址,从国外的服务器切换为国内的服务器
检查当前的下包地址:
npm config get registry
把下包的地址切换为国内的淘宝服务器
npm config set registry=https://registry.npm.taobao.org/
分为两类:
全局安装:包被安装到了系统目录(一般在系统盘的node_modules中)
命令: npm i -g 包名 或者 npm i 包名 -g
- npm root -g // 查看全局包的安装目录
- npm list -g --depth 0 //查看全局安装过的包
局部安装(或者叫本地安装), 包安装在当前项目的根目录下(与package.json同级)的node_modules中。
命令: npm i 包名
nrm 这个工具是帮助我们切换安装包的来源的。因为下载包时,默认是从npm官网(国外的网站)下载,速度可能会比较慢,我们可以手动去切换安装来源。
nrm包的地址:nrm - npm
共三步
npm install nrm -g
nrm ls
nrm use taotao
1.保存到开发依赖(devDependencies)
- npm install 包名 --save-dev
- // 或者 npm install 包名 -D
2.保存到生产依赖(dependencies)
- npm install 包名
- // 或者 npm install 包名 -S
- // 或者 npm install 包名 --save
在工作中我们积累了一些自己的功能代码,这些代码可以在其他项目中重复使用,此时就可以选择把代码打包放在[npm]上,在需要要用的项目中,通过npm i 去下载下来
准备工作
1.在npm上注册账号
在本地磁盘上创建一个空项目,取文件夹名为myNpm
(根据自己的实际情况去名字)。注意请先去npm网官去确定一下,这个项目名是否已经被占用了。(如果这个名字已经被占用了,则你是无法向npm上上传的)
检查方式
- npm view 包名
- # 这个命令用来查看 某个包的信息
- # 如果返回404,说明这个项目名在npm官网上找不到,此时你就可以使用。
- # 否则,说明不可用。
npm init --yes
命令来创建一个package.json文件,对你项目myNpm信息进行设置。
正常开发,完成你的代码。在默认情况下,index.js是这个项目的入口文件。
下面是一个最简单的示例:
- //tools.js
- const relativeTime = (oldTime) => {
- const t = new Date(oldTime)
- // Date.now():现在的时间戳(毫秒)
- // t.getTime():旧时间的时间戳(毫秒)
-
- const diff = Date.now() - t.getTime() // 相隔多少毫秒
- // Math.floor 向下取整: 1.7年 ---> 1年前
- const year = Math.floor(diff / (1000 * 3600 * 24 * 365))
- if (year) {
- return `${year}年前`
- }
- const month = Math.floor(diff / (1000 * 3600 * 24 * 30))
- if (month) {
- return `${month}月前`
- }
- const day = Math.floor(diff / (1000 * 3600 * 24))
- if (day) {
- return `${day}天前`
- }
- const hour = Math.floor(diff / (1000 * 3600))
- if (hour) {
- return `${hour}小时前`
- }
- const minute = Math.floor(diff / (1000 * 60))
- if (minute) {
- return `${minute}分钟前`
- } else {
- return '刚刚'
- }
- }
-
- const formatDate = (dateTime) => {
- // console.log(date)
- // date = new Date();
- const date = new Date(dateTime) // 转换成Data();
- console.log(date)
- var y = date.getFullYear()
- console.log(y)
- var m = date.getMonth() + 1
- m = m < 10 ? '0' + m : m
- var d = date.getDate()
- d = d < 10 ? ('0' + d) : d
- return y + '-' + m + '-' + d
- }
-
-
-
- // 通过module.exports来导出模块
- module.exports = {
- formatDate,
- relativeTime
- };
由于我们需要把包上传到npm上,所以要先确保当前的npm源是npmjs.org。与之相关的命令有如下两条。
(1)查看当前的npm的registry配置
- npm config get registry
- # 查看当前的npm的registry配置,确保是https://registry.npmjs.org
-
- # 如果不是,可以通过如下命令来设置
- # 手动设置registry
- npm config set registry https://registry.npmjs.org
(2)或者使用nrm工具来设置
npm adduser
这个命令需要输入四个信息以供连接上npmjs:
如果你已经不是第一次连接了,这一步是可以省略的。
也可以通过下列命令检查自己是否连接成功
> npm who am i
如果成功了,就可以进行最后一步: publish
如果想退出: npm logout
命令: npm publish
如果成功会出现下列效果
- -----------------------------------
- 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
出错的可能是
.npmignore
文件来设置在打包时要忽略哪些文件。如下是一个demo. - # .npmignore
- /node_modules
- npm-debug.log
- /src
- /examples
- /build
如果没有报错,则表示一切ok,你可以用你的帐号密码登陆npm,去查看你名下的package是否有了myNpm
通过npm i 包名 即可安装包
npm unpublish --force //强制删除
供所有人复用 写代码是,就会更加考虑代码的通用性
有,必须要是包的格式
格式:
npm init --yes
需要,我们必须要把代码上传到npm的官网。
通过 nrm use npm
来切换
需要,在命令行中登陆。 npm adduser
这一个操作只需要做一次
有。 1. 不能与现有包重名;2. 包名只能是小写字母+数字+中划线
是 npm publish
命令:npm i 包名
虽然我们上传是传到npm官网,但是,它会自动同步(例如:每隔15分钟就会通过其它镜像最新的包的信息)给其它的镜像 --- taobao, cnpm.....
- npm -v // 查看npm 版本
- where node // 查看node的安装目录
- where npm // 查看npm的安装目录
- npm root -g // 查看全局包的安装目录
- npm list -g --depth 0 // 查看全局安装过的包
- npm install npm --global // 简写成 -g
- npm install npm -g
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
如果不想用nrm,也可以使用下面原生的命令切换镜像源(从那里下载包)
- npm config set registry https://registry.npm.taobao.org
-
- ## 所有npm i 包 都会从taobao的镜像去下载。
- ## 配置后可通过下面方式来验证是否成功
- npm config get registry