概述
本文是 npm 包管理工具的理解和操作记录,系统的学习 npm。
本文记录是 从 node.js 官网学习 npm 模块的理解和摘要,看详情可点击npm 包管理。
npm包管理
npm 是 Node.js 标准的软件包管理器。
起初是作为下载和管理 Node.js 包依赖的方式,但其现在也已成为前端 JavaScript 中使用的工具。
- 安装所有依赖
若项目中具有 package.json 文件,通过 npm install ,创建 node_modules 文件夹存依赖。 - 安装单个软件包
- npm install <pack-name>
- –save 安装到 package.json 文件的dependencies中; //生产环境
- –save-dev 安装到 package.json 文件的devDependencies中; //开发环境
- 更新软件包
- npm update :会更新全部满足版本更新需求的包
- npm update <pack-name> :对指定单个软件包进行更新
- 版本控制
- 指定软件包的任何特定版本
- npm install <pack-name>@<version>
- 如 npm install jquery@5.1.1 --save
- 指定库的显式版本还有助于使每个人都使用相同的软件包版本,以便整个团队运行相同的版本,直至 package.json 文件被更新。
- 指定软件包的任何特定版本
- 运行任务:可运行npm包
- package.json 文件支持一种用于特定命令行任务
- npm run <task-name>
如
- npm run <task-name>
- package.json 文件支持一种用于特定命令行任务
{
"scripts": {
"start-dev": "node lib/server-development",
"start": "node lib/server-production"
},
}
在命令行中运行:
$ npm run watch
$ npm run dev
$ npm run prod
npm安装位置 与 npm 卸载
- 本地安装
- 默认情况下 执行 npm install 命令 , 软件包会被安装到当前文件树中的 node_modules 子文件夹下。
- 全局安装
- npm install -g <package-name> 安装全局
- 全局位置 :npm root -g 命令查了确切位置。(位置不确定)
- 本地卸载
- npm uninstall 包名:只卸载,不在 package.json 中删除。
- npm uninstall -S 包名:从 package.json 中的 dependencies 删除
- npm uninstall -D 包名:从 package.json 中的 devDependencies 删除
使用或执行 npm 安装的软件包
- 使用/引用 普通 软件包
const _ = require('包名')
- 使用 可执行 软件包
- 可执行软件包 会放置 node_modules/.bin/ 文件夹下
- step1:cowsay 软件包提供了一个命令行程序 npm install cowsay
- step2:进入 node_modules/.bin/ 打开命令行输入
- ./node_modules/.bin/cowsay 或 npx cowsay
package.json 指南
package.json 文件时项目的清单,存储所有已安装软件包的名称和版本的地方。唯一要求遵守 JSON 格式,否则无法读取。
{
"name": "test-project",
"version": "1.0.0",
"description": "A Vue.js project",
"main": "src/main.js",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"unit": "jest --config test/unit/jest.conf.js --coverage",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit",
"build": "node build/build.js"
},
"dependencies": {
"vue": "^2.5.2"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": ["> 1%", "last 2 versions", "not ie <= 8"]
}
- name 设置了应用程序/软件包的名称。
- version 表明了当前的版本。
- description 是应用程序/软件包的简短描述。
- main 设置了应用程序的入口点。
- private 如果设置为 true,则可以防止应用程序/软件包被意外地发布到 npm。
- scripts 定义了一组可以运行的 node 脚本。
- dependencies 设置了作为依赖安装的 npm 软件包的列表。
- devDependencies 设置了作为开发依赖安装的 npm 软件包的列表。
- engines 设置了此软件包/应用程序在哪个版本的 Node.js 上运行。
- browserslist 用于告知要支持哪些浏览器(及其版本)。
package-lock.json
文件旨在跟踪被安装的每个软件包的确切版本,以便产品可以以相同的方式被 100% 复制(即使软件包的维护者更新了软件包。
可以使用 semver 表示法设置要升级到的版本(补丁版本或次版本),例如:
- 如果写入的是 〜0.13.0,则只更新补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
- 如果写入的是 ^0.13.0,则要更新补丁版本和次版本:即 0.13.1、0.14.0、依此类推。
- 如果写入的是 0.13.0,则始终使用确切的版本。
升级规则:
^: 如果写入的是 ^0.13.0,则当运行 npm update 时,会更新到补丁版本和次版本:即 0.13.1、0.14.0、依此类推。
~: 如果写入的是 〜0.13.0,则当运行 npm update 时,会更新到补丁版本:即 0.13.1 可以,但 0.14.0 不可以。
: 接受高于指定版本的任何版本。
=: 接受等于或高于指定版本的任何版本。
<=: 接受等于或低于指定版本的任何版本。
<: 接受低于指定版本的任何版本。
=: 接受确切的版本。
-: 接受一定范围的版本。例如:2.1.0 - 2.6.2。
||: 组合集合。例如 < 2.1 || > 2.6。
无符号: 仅接受指定的特定版本(例如 1.2.1)。
latest: 使用可用的最新版本。
当运行 npm update 时,package-lock.json 文件中的依赖的版本会被更新。
查看 npm 包安装的版本
- 普通-查看软件包的最新版本:npm list
- 全局-软件包: npm list -g
- 仅获取顶层的软件包:npm list --depth=0
- 通过指定名称来获取软件包版本:npm list 包名
- 安装的软件包相关依赖视图:npm list 包名
- 查看软件包在 npm 仓库上最新的可用版本:npm view 包名 version
安装npm包的旧版本
- npm install @
- npm install cowsay@1.2.0
- 列出软件包以前的所有版本
- npm view 包名 versions
最后
以上就是畅快宝马为你收集整理的npm包管理工具操作、理解记录,package.json与 package-lock.json的全部内容,希望文章能够帮你解决npm包管理工具操作、理解记录,package.json与 package-lock.json所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复