Vuejs package.json解析

package.json 文件是用来管理本地安装 npm 包的唯一文件。它描述了当前项目依赖的包的列表,包含项目依赖包的版本,便于项目管理和移植

一、创建
1、npm init 即可在当前目录创建一个 package.json 文件,跟着步骤选项,手动创建package.json文件
2、npm init --yes 可以跳过回答问题步骤,直接生成默认值的 package.json 文件


二、package.json两部分

  • “name” :全部小写,没有空格,可以使用下划线或者横线
  • “version” :x.x.x 的格式,符合“语义化版本规则”  

比如:

{
  "name": "shixinzhang-demo-package",
  "version": "1.0.0"
}

其他内容:

  • description:描述信息,有助于搜索,如果 package.json 中没有 description 信息,npm 使用项目中的 README.md 的第一行作为描述信息。这个描述信息有助于别人搜索你的项目,因此建议好好写 description 信息。
  • main: 入口文件,不固定,可自定义
  • scripts:支持的脚本,默认是一个空的 test
  • keywords:关键字,有助于在人们使用 npm search 搜索时发现你的项目
  • author:作者信息
  • license:默认是 MIT
  • bugs:当前项目的一些错误信息,如果有的话

我们可以为 init 命令设置一些默认值

> npm set init.author.email "shixinzhang2016@gmail.com"
> npm set init.author.name "shixinzhang"
> npm set init.license "MIT"

指定依赖的包

在 package.json 文件中指定项目依赖的包,这样复制项目时,可以使用 npm install 下载

包有两种依赖方式:

  • dependencies:在生产环境中需要用到的依赖
  • devDependencies:在开发、测试环境中用到的依赖,在上线打包后的代码是不存在的

依赖包版本选择:

  • ~会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
  • ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
  • *会匹配最新版本的依赖包,但会产生兼容问题,一般不推荐

版本号规范
  项目的版本号都是从 1.0.0 版本开始。以后要升级版本应该遵循以下标准:

  • 补丁版本:解决了 Bug 或者一些较小的更改,增加最后一位数字,比如 1.0.1
  • 小版本:增加了新特性,同时不会影响之前的版本,增加中间一位数字,比如 1.1.0
  • 大版本:大改版,无法兼容之前的,增加第一位数字,比如 2.0.0

安装 package

使用 npm 安装 package 有两种方式:本地(当前项目路径)安装 或者 全局安装

  • 如果你只是想在当前项目里用 require() 加载使用,那你可以安装到本地 ,npm install 默认就是安装到本地的
  • 如果你想要在命令行里直接使用,比如 grunt CLI,就需要安装到全局了

如果在你的项目里有 package.json 文件,运行 npm install 后它会查找文件中列出的依赖包,然后下载符合语义化版本规则的版本。

npm install 默认会安装 package.json 中 dependencies 和 devDependencies 里的所有模块。

如果想只安装 dependencies 中的内容,可以使用 --production 字段:

npm install --production

本地安装 package

npm 使用下面的命令下载一个包:

npm install <package_name>

后面就是要安装包的名称。这个命令会在当前目录创建一个 node_modules 目录,然后下载我们指定的包到这个目录中。

安装指定版本:

npm install 默认安装最新版本,如果想要安装指定版本,可以在库名称后加 @版本号

$ npm install sax@latest
$ npm install sax@0.1.1
$ npm install sax@">=0.1.0 <0.2.0"
  • 如果当前项目有 package.json 文件,下载包时会下载这个文件中指定的版本; 
  • 如果当前项目中没有 package.json 文件,就会下载指定包的最新版本。
如果下载报错:npm install error saveError ENOENT: no such file or directory, open '/Users/zhangshixin/package.json'
解决办法: 
- 在目录下执行 npm init 创建 package.json,输入初始化信息 
- 然后再执行下载命令

安装参数 --save 和 --save -dev

添加依赖时我们可以手动修改 package.json 文件,添加或者修改 dependencies devDependencies 中的内容即可。

另一种方式是用命令行,在使用 npm install 时增加 --save 或者 --save -dev 后缀:

  • npm install <package_name> --save 表示将这个包名及对应的版本添加到 package.json的 dependencies
  • npm install <package_name> --save-dev 表示将这个包名及对应的版本添加到 package.json的 devDependencies

使用下载好的包

下载后 node_modules 文件夹中有要使用的包,我们就可以使用其中的代码了。

比如在 Node.js 项目中,我们可以用 require(XXX) 引入它。

在使用 require('lodash') 后引入了 lodash 库,然后调用了它的 without() 方法,这个方法可以去除第一个数组参数中与第二个参数重复的数据。

保存这个文件后,使用 node index.js 运行这个文件,成功的话就可以得到运行结果[2,3];

如果报错,先先在当前目录下重新运行 npm install lodash 安装,看是否报错。

更新本地 package

有时候我们想知道依赖的包是否有新版本,可以使用 npm outdated 查看,如果发现有的包有新版本,就可以使用 npm update <package-name> 更新它,或者直接 npm update 更新所有:

一开始,我们package.json里面定义的lodash的版本是3.10.1,

当我们用npm outdated,能看到最新版本是4.17.10

要更新到最新版本,我们需要把package.json改为*,然后执行npm update

只有当前模块版本低于远程,package.json 中的版本语义规则满足情况,才能更新成功。

npm uninstall <package-name> : 卸载本地 package

同时node_modules/lodash文件夹,以及package.json里面的"lodash": ....也一并删除了

全局安装 package

如果你想要直接在命令行中使用某个包,比如 jshint ,你可以全局安装它。

全局安装比本地安装多了个 -g:

npm install -g <package-name>

以 jshint 为例,全局安装命令是:

 

npm install -g jshint

安装后可以使用 npm ls -g --depth=0 查看安装在全局第一层的包。

3.使用其他包管理器帮你解决这个问题

卸载 node,然后使用 Homebrew 重装 node: 

brew install node

Homebrew 会帮我们处理好权限的问题。

npm outdated -g --depth=0:查看需要更新的包

npm update -g <package>:更新指定的包:

npm update -g:要更新所有全局包

官方说在 2.6.1 以下的 npm ,直接使用 npm update -g 并不安全,因为它会递归地更新所有全局依赖。

npm check:检查当前版本与最新版本的比照图

npm uninstall -g <package>:卸载全局 package

npm run:直接运行 package.json 中 scripts 指定的脚本:

{
  "name": "demo",
  "scripts": {
    "lint": "jshint **.js",
    "test": "mocha test/"
  }
}

npm run 是 npm run-script 的缩写,命令行输入 npm run lint 或者 npm run-script lint 就会执行 jshint **.js 。

npm run 会创建一个Shell,执行指定的命令,并临时将node_modules/.bin加入PATH 变量,这意味着本地模块可以直接运行。

package.json 中的 scripts 执行的脚本是本地项目内 node_modules -> .bin 内的脚本。
直接运行 npm run 会列出当前项目的 package.json 中 scripts 属性下的所有脚本命令。

npm install 也可以直接从 github 下载:
$ npm install git://github.com/package/path.git
$ npm install git://github.com/package/path.git#0.1.0

npm info <package-name> 可以查看指定包的信息:
npm adduser 用于在npmjs.com注册一个用户:
npm home <package-name>命令可以打开指定模块的主页; 
npm repo <package-name>命令则是打开指定模块的代码仓库。
npm prune “修剪”,npm prune 可以检查出当前项目的 node_modules目录中,没有在 package.json里提到的模块。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值