美文网首页前后端相关vue设置eslint
vue的package.json文件理解

vue的package.json文件理解

作者: 泪滴在琴上 | 来源:发表于2018-09-12 16:19 被阅读0次
{
  "name": "myproject",
  "version": "2.0.4",
  "description": "基于nodejs,express,vue2 管理系统.",
  "keywords": [
    "vue",
    "vuex",
    "vue-router",
    "webpack",
    "server-side"
  ],
  "author": "lengyuefengqing",
  "license": "MIT",
  "scripts": {
    "init": " node build/restore",
    "dump": " node build/dump",
    "dev": "npm run static && cross-env NODE_ENV=development MICRO_CACHE=true node ./server",
    "start": "npm run static && cross-env NODE_ENV=development MICRO_CACHE=true node ./server",
    "build": "npm run static && npm run build:client && npm run build:server",
    "build:client": "cross-env NODE_ENV=production webpack --config build/webpack.client.config.js --progress --hide-modules",
    "build:server": "cross-env NODE_ENV=production webpack --config build/webpack.server.config.js --progress --hide-modules",
    "static": "node ./build/copy"
  },
  "dependencies": {
    "archiver": "^1.3.0",
   ...
    "vuex-router-sync": "^4.3.2"
  },
  "devDependencies": {
    "autoprefixer": "^7.1.0",
    ...
    "webpack-merge": "^4.1.0"
  },
  "engines": {
    "node": "8.x"
  }
}

当我们创建一个node项目,意味着创建一个module模块,这个模块的描述文件,叫package.json。

"name": 包名
"version": 包的版本号
main: 入口文件,一般都是 index.js
scripts:支持的脚本,默认是一个空的 test
keywords:关键字,有助于在人们使用 npm search 搜索时发现你的项目
"description": 包的描述
"author": 包的作者
repository: 包代码的repo信息,包括type和URL,type可以是git或者svn,url则是包的repo地址。
license:默认是 [MIT],项目许可证,让使用者知道是如何被允许使用此项目。
"dependencies": 生产环境依赖包列表
"devDependencies": 开发环境、测试环境依赖包列表
engines: 声明项目需要的node或npm版本范围

{ “engines” : { “npm” : “~1.0.20” } } 
{ “engines” : { “node” : “>=0.10.3 <0.12” } }

npm版本号规范

如果一个项目打算与别人分享,应该从 1.0.0 版本开始。以后要升级版本应该遵循以下标准:

补丁版本:解决了 Bug 或者一些较小的更改,增加最后一位数字,比如 1.0.1
小版本:增加了新特性,同时不会影响之前的版本,增加中间一位数字,比如 1.1.0
大版本:大改版,无法兼容之前的,增加第一位数字,比如 2.0.0
了解了提供者的版本规范后, npm 包使用者就可以针对自己的需要填写依赖包的版本规则。

作为使用者,我们可以在 package.json 文件中写明我们可以接受这个包的更新程度(假设当前依赖的是 1.0.4 版本):

如果只打算接受补丁版本的更新(也就是最后一位的改变),就可以这么写:
1.0
1.0.x
~1.0.4
如果接受小版本的更新(第二位的改变),就可以这么写:
1
1.x
^1.0.4
如果可以接受大版本的更新(自然接受小版本和补丁版本的改变),就可以这么写:

x
小结一下:总共三种版本变化类型,接受依赖包哪种类型的更新,就把版本号准确写到前一位。


依赖的安装

npm install
如果想只安装 dependencies 中的内容,可以使用 --production 字段:
npm install --production
安装指定版本:
npm install 默认安装最新版本,如果想要安装指定版本,可以在库名称后加 @版本号:

$ npm install sax@latest
$ npm install sax@0.1.1
$ npm install sax@">=0.1.0 <0.2.0"

安装参数 --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) 引入它。

更新本地 package

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

npm update 的工作过程:

1、先到远程仓库查询最新版本
2、然后对比本地版本,如果本地版本不存在,或者远程版本较新
3、查看 package.json 中对应的语义版本规则
4、如果当前新版本符合语义规则,就更新,否则不更新

卸载本地 package

卸载一个本地 package 很简单,npm uninstall <package-name> 即可

npm run

npm 还可以直接运行 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 from github

npm install 也可以直接从 github 下载:

npm install git://github.com/package/path.git npm install git://github.com/package/path.git#0.1.0

npm info

npm info <package-name> 可以查看指定包的信息:

npm adduser

npm adduser 用于在npmjs.com注册一个用户:

$ npm adduser
Username: YOUR_USER_NAME
Password: YOUR_PASSWORD
Email: YOUR_EMAIL@domain.com

npm home/repo

npm home <package-name>命令可以打开指定模块的主页;
npm repo <package-name>命令则是打开指定模块的代码仓库。

npm prune

prune 即“修剪”的意思。

npm prune 可以检查出当前项目的 node_modules目录中,没有在 package.json里提到的模块。

相关文章

网友评论

    本文标题:vue的package.json文件理解

    本文链接:https://www.haomeiwen.com/subject/ngtbgftx.html