package.json和npm

目录

1.package.json

建议每一个项目都要有一个package.json,这个文件就像产品的说明书一样,记录了项目的信息

该文件可以用npm init来初始化创建 

 按照上面这种方式创建的package.json是这样子的

{
  "name": "test",
  "version": "1.0.0",
  "description": "这是一个测试文件",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "fyx",
  "license": "ISC"
}

我们来安装一个包 npm i art-template --save,再看看package.json

{
  "name": "test",
  "version": "1.0.0",
  "description": "这是一个测试文件",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "fyx",
  "license": "ISC",
  "dependencies": {
    "art-template": "^4.13.2"
  }
}

我们发现在dependencies这个选项中就记录了第三方包的名称(npm5 以后的版本安装包不加--save参数也会自动保存依赖信息)

向上标号^是定义了向后(新)兼容依赖,指如果art-template的版本是超过4.13.2,并在大版本号(4)上相同,就允许下载最新版本的 art-template库包,例如实际上运行npm install时候下载的具体版本可能是4.13.10。

执行这个命令的时候,在项目根目录下会新增一个node_modules文件夹,你会发现这里面有很多包,这是因为art-template包本身依赖了很多其它包,同样,这些包也可能依赖了其它包。

但是,package.json只会记录最上层的art-template。

package.json和package-lock.json

npm5以前是不会有package-lock.json这个文件的,npm5以后才加入了这个文件。当你安装包的时候,会自动创建或更新该文件。
package-lock.json文件会保存node_modules中所有包的信息(版本、下载地址),这样重新npm install的时候速度就可以提升。
该文件的另一个作用是定安装时的包的版本号,因为package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本。该文件保证了在不同时间或者不同npm下载源之下,用户下载到的依赖包的版本都一样。

我们执行npm i jquery --save-dev,再看看package.json 

{
  "name": "test",
  "version": "1.0.0",
  "description": "这是一个测试文件",
  "main": "main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "fyx",
  "license": "ISC",
  "dependencies": {
    "art-template": "^4.13.2"
  },
  "devDependencies": {
    "jquery": "^3.6.0"
  }
}

发现,和前面略有不同,这是因为--save-dev安装的是开发和测试中需要用到的包,--save安装的是运行项目所要用到的包。

如果你不小心删除了node_modules文件夹,只要还有package.json这个文件夹,你就可以依据npm install这个命令把要依赖的包安装回来。

2.npm

npm全称node package manager,是一个包管理工具

npm官网能搜索到的包,都可以用npm指令下载

安装了node会自动安装npm

查看npm版本:npm --version
升级npm版本:npm install --global npm 

npm常用指令

npm init
npm init -y  可以跳过向导,快速生成
npm install以一次性把dependencies选项中的依赖项全部安装,简写:npm i
npm insatll 包名,简写:npm i
npm install --save,简写:npm i -S
npm uninstall 包名,简写:npm un 包名(只删除包,package.json中依然保留信息)
npm uninstall --save 包名,
简写:npm un -S 包名(删除包的同时会把依赖信息也删掉)
npm help,查看使用帮助
npm 命令 --help,查看指定命令的使用帮助,比如去查uninstall的简写:npm uninstall --help

npm存储包文件的服务器再国外,有时候速度很慢,如何解决?

淘宝 NPM 镜像 淘宝的开发团队把npm在国外做了一个备份
安装淘宝的cnpm: npm install --global cnpm (global表示安装到全局)
使用npm安装走的是国外的npm服务器,使用cnpm走的是淘宝的服务器
以后安装包就可以用cnpm

如果不想安装cnpm又想使用淘宝的服务器来下载
npm install jquery --registry=http://registry.npm.taobao.org
但是每一次手动这样加参数很麻烦,所以我们可以把这个选项加入到配置文件中:
npm config set registry http://registry.npm.taobao.org
查看npm配置信息:npm config list
这样配置以后,以后用npm install下载会默认走淘宝的服务器

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值