npm是nodejs的一个模块,安装好nodejs软件之后就自带npm模块,可以直接使用npm的相关操作。
npm config ls
:npm配置信息。
npm config set prefix "complete_path"
:修改npm的全局安装路径(注意:修改后需要将路径添加到环境变量)。
npm config set cache "complete_path"
:修改npm的缓存路径。
#查看npm的全局安装路径(默认全局地址:C:\Users\Administrator\AppData\Roaming\npm)
npm config get prefix
#查看npm的缓存路径(默认缓存地址:C:\Users\Administrator\AppData\Roaming\npm-cache)
npm config get cache
npm config set registry https://registry.npmmirror.com
:修改npm远程仓库地址为淘宝镜像。淘宝npm镜像网站地址http://npmmirror.com
,可以在上面搜索想要的第三方前端依赖库。
npm cache clean
:清除npm的缓存(npm版本7及以上不需要清缓存)。
npm prune
:清除项目中没有被使用的包。
package.json
package.json是npm依赖包管理文件,用于定义项目所需的各种第三方前端依赖包,以及项目的各种配置信息(如名称、版本、描述、作者、许可证等等),类似于maven的pom.xml文件。
在package.json文件目录终端执行npm install
时,npm会自动下载package.json里面定义的各种第三方依赖包,放在当前目录的node_modules
目录内部。
package-lock.json
package-lock.json文件是在执行npm install
命令时生成的文件,内部记录了当前状态下载安装package.json文件内部所有依赖包的版本号,下次执行npm install
时重用package-lock.json文件保存的版本号。
"dependencies": {
"@types/node": "^8.0.33",
}
#例如这里面的上标号^是定义了向后(新)兼容依赖,指如果types/node的版本是超过8.0.33,并在大版本号(8)上相同,就允许下载最新版本的 types/node库包,例如实际上可能运行npm install时候下载的具体版本是8.0.35。
#所以package-lock.json文件的作用就是锁定package.json依赖包的版本号,防止在不同时间执行npm install时下载安装的依赖包版本不一致,导致项目运行出现意料之外的问题。
所以package-lock.json
文件也需要上传到代码管理器,如git。
npm init
:初始化npm,根据终端提示在当前文件夹创建一个package.json文件。
npm install moduleName
:安装指定的node模块。-g(–global)全局安装,-S(–save)安装为运行时依赖,-D(–save-dev)安装为开发时依赖。此外若已存在安装的node模块,将覆盖package.json、package-lock.json俩文件的旧版本。
#安装jquery最新版本为运行时依赖
npm install jquery
#安装element-ui的2.12.0版本为运行时依赖
npm install element-ui@2.12.0 -S
#安装element-ui的2.13.0版本为开发时依赖
npm install element-ui@2.12.0 -D
# 全局安装webpack
npm install webpack webpack-cli –g
npm uninstall moduleName
:卸载掉指定模块,并删除package.json、package-lock.json中的模块依赖。
npm run scriptName
:运行npm项目指定的scripts脚本模块。
#如下是一个package.json文件,用以演示执行npm run xxx命令
{
"name": "demo",
"version": "1.0.0",
"description": "helloworld",
"main": "index.js",
"scripts": {
"pretest": "echo pre test script",
"test": "echo Error: no test specified ",
"posttest": "echo post test script "
},
"author": "",
"license": "ISC",
"dependencies": {},
"devDependencies": {}
}
#执行run命令结果
npm run test
> demo@1.0.0 pretest C:\Users\Administrator\Desktop\es6\npm
> echo pre test script
pre test script
> demo@1.0.0 test C:\Users\Administrator\Desktop\es6\npm
> echo Error: no test specified
Error: no test specified
> demo@1.0.0 posttest C:\Users\Administrator\Desktop\es6\npm
> echo post test script
#常见的前端项目运行npm run dev或npm run build就是执行scripts模块的dev、build部分。案例:
{
"name": "elm",
"version": "1.0.0",
"description": "vue2-elm",
"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js"
}
}