补充知识点
在某个项目下开启小黑窗,输入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: [email protected]
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
+ [email protected]
出错的可能是
# .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