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 }
这里有很多东西:
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 等。
每个都有特有的属性,例如 eslintConfig
、babel
等。 它们是命令特有的,可以在相应的命令/项目文档中找到如何使用它们。
package文件更新
在 package.json 中,可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本),例如:
tip:鉴于使用了 semver(语义版本控制),所有的版本都有 3 个数字,第一个是主版本,第二个是次版本,第三个是补丁版本。
- 如果写入的是
〜0.13.0
,则只更新补丁版本:即0.13.1
可以,但0.14.0
不可以。 - 如果写入的是
^0.13.0
,则要更新补丁版本和次版本:即0.13.1
、0.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
文件中的引用。
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>