初识npm
什么是npm
npm(NodeJS Package Manager),即NodeJS包管理工具。npm是按照NodeJS自带的包管理工具。按照我个人的理解npm和NodeJS的关系相当于Maven之于Java。
package.json和package-lock.json文件
package.json的作用是记录项目依赖的包
package-lock.json的作用是记录node_modules目录下安装的包信息(版本、下载地址),另一个作用是锁定项目依赖的包版本,方式包升级依赖的包也升级。
使用npm init
命令会在执行命令所在目录创建一个package.json文件。使用npm install
命令按照指定的依赖包,会自动生成package-lock.json和node_modules目录。
一般情况我们项目值需要修改package.json即可,package-lock.json由npm自动维护。
package.json内容如下:
{
"name": "npmdemo",
"version": "1.0.0",
"description": "npm demo",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "zhangxy",
"license": "ISC",
"devDependencies": {
"webpack": "^4.40.2"
},
"dependencies": {
"jquery": "^3.4.1"
}
}
name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
devDependencies:开发和测试环境依赖的包
dependencies:生产环境依赖的包
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
scripts:执行脚本的别名(npm 命令别名
)。
keywords - 关键字
license:ISC开源证书
本地安装和全局安装
本地安装是指项目范围内安装,只有项目内才能使用安装的包,全局安装是所有项目都能使用全局安装的包。
全局安装需要在npm命令之后加上-g
(例如npm install jquery -g
),否则为本地安装。
本地安装的包放在执行命令所在目录的node_modules目录中,全局按一般情况下是放在NodeJS安装目录下的node_modules目录中。可通过npm config list
来查看全局按照目录。
也可以通过修改NodeJS安装目录\node_modules\npm\npmrc
文件来指定全局安装目录。或者通过npm config set prefix "you path"
来配置全局安装目录。
npm常用命令
执行命令所在目录生成package.json文件
npm init
跳过向导,安装默认信息生产package.json文件
npm init --yes
或 npm init --y
下载package.json文件中声明的依赖。导入一个项目都本地,就可以使用此命令下载package.json中所有的依赖。
npm install
安装指定的包并添加到生产依赖中(即添加到package.json文件中的dependencies节点下)
npm install "you package name"
或 npm install --save "you package name"
安装指定的包并添加到开发和测试依赖中(即添加到package.json文件中的devDependencies节点下)
npm install --save-dev "you package name"
删除包并移除从生产依赖中
npm uninstall "you package name"
删除包并移除从开发和测试依赖中
npm uninstall --save-dev "you package name"
更新包
npm update "you package name"
更新npm版本
npm install npm --global
设置npm远程仓库的地址为淘宝镜像(国内的下载速度会快一些)
npm install -g cnpm --registry=https://registry.npm.taobao.org
查看npm配置信息
npm config list
资料:
https://www.runoob.com/nodejs/nodejs-npm.html
https://www.cnblogs.com/Grani/p/9557188.html
https://www.kancloud.cn/shellway/npm-doc/199983