Npm
- 全局安装
npm install webpack --global (-g)
- 创建package.json
// -y 使用默认配置
npm init -y
- 本地安装包
//dev:开发环境依赖
//save:放在package.json中
npm install gulp --dev-save
//简写
npm install gulp -D
//生产环境依赖
npm install gulp --save
//简写
npm install gulp -D
- 查看包的依赖关系
//查看所有包的依赖关系树
npm list
//查看指定包的依赖关系树
npm list | grep <包名>
- 根据package.json安装相应的包
//安装所有依赖
npm i
//安装生产环境依赖
npm i --production
//安装开发环境依赖
npm i --development
- 查看包的所有版本
npm view jquery versions
- node package version
-
13.4.6
-
major:13,minor:4,patch:6
-
安装指定版本的依赖包
npm i jquery@13.4.6 -S
- 查看包目前版本与最新版本不匹配的包
npm outdated
- 更新所有包的版本
npm版本符号
- ^:绑定主版本,将其余小版本保持最新
- ~:绑定主版本和次版本,将其余小版本保持最新
- 不加前缀:锁定全部版本号
- ‘*':表示最新版本
npm update
- 清除npm缓存
npm cache clean --force
-
npm模块
-
内置模块
const path = require('path');
console.log(path.resolve(__dirname, 'dist'));
- 第三方模块
const axios = require('axios');
axios.get('http://www.baidu.com')
.then(result => {
console.log(result.data);
})
.catch(err => {
console.log(err);
});
- 发布第三方包
- package.json和入口文件
{
//包名
"name": "nodejs",
"version": "1.0.0",
"description": "",
//入口文件
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1"
}
}
在入口文件处使用
module.exports
暴露内容
- 注册npm仓库账号
npm adduser
- 更改源
//安装nrm
npm i nrm -g
//切换源
nrm use npm
- 推送到npm仓库
npm publish
- 卸载包
//查看当前包引用了哪些包
npm ls
//卸载包
npm unpublish --force
- 切换npm源
- 查看当前npm源
npm config get registry
- 切换当前源
npm config set registry <源>
- npm脚本
- start和test命令不需要加run,例如,npm start/test
- 其它命令需要加run
- 访问自定义选项,例如,以下config中的env,那么执行脚本start,运行内置模块.js中的内容 process.env.npm_package_config_env 可以获得env对应的值
- 在package.json中访问变量可以通过 $npm_package_config_env 的形式访问
- 在package.json中,echo可以渲染变量
package.json
{
"name": "nodejs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./npm/内置模块.js",
"build": "echo $npm_package_config_env"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1"
},
"config": {
"env": "production"
}
}
内置模块.js
console.log(process.env.npm_package_config_env);
- 安装github上的包
//ssh
npm i git+ssh://<ssh地址>
- NODE_ENV
- Mac系统
{
"name": "nodejs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "NODE_ENV=development webpack",
"prod": "NODE_ENV=production webpack",
"start": "node ./npm/内置模块.js",
"build": "echo $npm_package_config_env"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1"
},
"config": {
"env": "production"
}
}
//获取环境变量
const node_env=process.env.NODE_ENV;
console.log(node_env);
cross-env
-
cross-env:运行跨平台设置和使用环境变量的脚本
-
windows系统
npm i cross-env -D
{
"name": "nodejs",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "cross-env NODE_ENV=development webpack",
"prod": "cross-env NODE_ENV=production webpack",
"start": "node ./npm/内置模块.js",
"build": "echo $npm_package_config_env"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^0.21.1"
},
"config": {
"env": "production"
}
}
- node rigistry manager (nrm)
npm i nrm -g
//查看源列表
nrm ls
//切换源
nrm use <源名>
//测试速度
nrm test
- npx
- npm 5.2版本后自带
- 若项目本地有包,全局没有包,可以直接使用npx调用
- 若本地和全局都没有,调用后会自动下载到一个临时文件,用完自动删除
- –no-install:使用本地,本地没有直接挂
- –ignore-exiting:不使用本地和全局,必须安装
npx --no-install http-server
npx --ignore-exiting http-server