package.json指南及其常用命令

package文件属性

 1 {
 2   "name": "test-project",
 3   "version": "1.0.0",
 4   "description": "A Vue.js project",
 5   "main": "src/main.js",
 6   "private": true,
 7   "scripts": {
 8     "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
 9     "start": "npm run dev",
10     "unit": "jest --config test/unit/jest.conf.js --coverage",
11     "test": "npm run unit",
12     "lint": "eslint --ext .js,.vue src test/unit",
13     "build": "node build/build.js"
14   },
15   "dependencies": {
16     "vue": "^2.5.2"
17   },
18   "devDependencies": {
19     "autoprefixer": "^7.1.2",
20     "babel-core": "^6.22.1",   
21     "copy-webpack-plugin": "^4.0.1",
22     "css-loader": "^0.28.0",
23     "eslint": "^4.15.0",
24      …………
25     "webpack-merge": "^4.1.0"
26   },
27   "engines": {
28     "node": ">= 6.0.0",
29     "npm": ">= 3.0.0"
30   },
31   "browserslist": ["> 1%", "last 2 versions", "not ie <= 8"]
32 }
View Code

这里有很多东西:

  • version 表明了当前的版本。

    此属性遵循版本的语义版本控制记法,这意味着版本始终以 3 个数字表示:x.x.x

  • name 设置了应用程序/软件包的名称。

    名称必须少于 214 个字符,且不能包含空格,只能包含小写字母连字符(-下划线(_)。这是因为当软件包在 npm 上发布时,它会基于此属性获得自己的 URL。 

  • description 是应用程序/软件包的简短描述。
  • main 设置了应用程序的入口点。
  • private 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm
  • scripts 定义了一组可以运行的 node 脚本。
  • dependencies 设置了作为依赖安装的 npm 软件包的列表。
  • devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。

    它们不同于 dependencies,因为它们只需安装在开发机器上,而无需在生产环境中运行代码。 

  • engines 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
  • browserslist 用于告知要支持哪些浏览器(及其版本)。

  

package.json 文件还可以承载命令特有的配置,例如 Babel、ESLint 等。

每个都有特有的属性,例如 eslintConfigbabel 等。 它们是命令特有的,可以在相应的命令/项目文档中找到如何使用它们。

package文件更新

在 package.json 中,可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本),例如:

tip:鉴于使用了 semver(语义版本控制),所有的版本都有 3 个数字,第一个是主版本,第二个是次版本,第三个是补丁版本。

  • 如果写入的是 〜0.13.0,则只更新补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
  • 如果写入的是 ^0.13.0,则要更新补丁版本和次版本:即 0.13.10.14.0、依此类推。
  • 如果写入的是 0.13.0,则始终使用确切的版本

调用npm update命令, 文件中的依赖的版本会被更新,会更新package.json文件和package-lock.json文件。(不会更新主版本。只会根据^、~去更新次版本或者补丁版本)

/////////////附加内容 开始/////////////

若要发觉软件包的新版本,则运行 npm outdated。再所得的列表中,这些更新中有些是主版本。 运行 npm update 不会更新那些版本。 主版本永远不会被这种方式更新,因为它们(根据定义)会引入重大的更改,npm 希望为你减少麻烦。

若要将所有软件包更新到新的主版本,则全局地安装 npm-check-updates 软件包:npm install -g npm-check-updates

然后运行:ncu -u

这会升级 package.json 文件的 dependencies 和 devDependencies 中的所有版本,以便 npm 可以安装新的主版本。

    现在可以运行更新了:npm update

    或者如果只是下载了项目还没有 node_modules 依赖包,并且想先安装新的版本,则运行:npm install 

/////////////结束/////////////

更新了情况如下图所示

  

查看npm包安装的版本

npm list:查看所有已安装的 npm 软件包
npm list --depth=0:仅获取顶层的软件包(基本上就是告诉 npm 要安装并在 package.json 中列出的软件包)
npm view [package_name] version:要查看软件包在 npm 仓库上最新的可用版本

 

安装npm包的旧版本

可以使用 @ 语法来安装 npm 软件包的旧版本:

npm install <package>@<version>:例如npm install cowsay@1.2.0会安装 1.2.0 版本

全局的软件包也可以这样做:

 npm install -g webpack@4.16.4

可能还有需要列出软件包所有的以前的版本。 可以使用 npm view <package> versions

卸载npm软件包

如果使用 -S 或 --save 标志,则此操作还会移除 package.json 文件中的引用。

 npm uninstall <package-name>:卸载之前在本地安装(在 node_modules 文件夹使用 npm install <package-name>)的软件包,从项目的根文件夹(包含 node_modules 文件夹的文件夹)中运行

如果使用 -S 或 --save 标志,则此操作还会移除 package.json 文件中的引用。如果程序包是开发依赖项(列出在 package.json 文件的 devDependencies 中),则必须使用 -D 或 --save-dev 标志从文件中移除: 

npm uninstall -S <package-name>
npm uninstall -D <package-name>

如果该软件包是全局安装的,则需要添加 -g 或 --global 标志:(可以在系统上的任何位置运行此命令,因为当前所在的文件夹无关紧要。)
npm uninstall -g <package-name>

原文地址:https://www.cnblogs.com/luoxuemei/p/14375945.html