1. 全局安装
npm install webpack --global (-g)
  1. 创建package.json
// -y 使用默认配置
npm init -y
  1. 本地安装包
//dev:开发环境依赖
//save:放在package.json中
npm install gulp --dev-save
//简写
npm install gulp -D
//生产环境依赖
npm install gulp --save
//简写
npm install gulp -D
  1. 查看包的依赖关系
//查看所有包的依赖关系树
npm list
//查看指定包的依赖关系树
npm list | grep <包名>
  1. 根据package.json安装相应的包
//安装所有依赖
npm i
//安装生产环境依赖
npm i --production
//安装开发环境依赖
npm i --development
  1. 查看包的所有版本
npm view jquery versions
  1. node package version
  • 13.4.6

  • major:13,minor:4,patch:6

  • 安装指定版本的依赖包

npm i jquery@13.4.6 -S
  1. 查看包目前版本与最新版本不匹配的包
npm outdated
  1. 更新所有包的版本

npm版本符号

  • ^:绑定主版本,将其余小版本保持最新
  • ~:绑定主版本和次版本,将其余小版本保持最新
  • 不加前缀:锁定全部版本号
  • ‘*':表示最新版本
npm update
  1. 清除npm缓存
npm cache clean --force
  1. npm模块

  2. 内置模块

const path = require('path');

console.log(path.resolve(__dirname, 'dist'));
  1. 第三方模块
const axios = require('axios');

axios.get('http://www.baidu.com')
  .then(result => {
    console.log(result.data);
  })
  .catch(err => {
    console.log(err);
  });
  1. 发布第三方包
  • 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
  1. 切换npm源
  • 查看当前npm源
npm config get registry
  • 切换当前源
npm config set registry <源>
  1. 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);
  1. 安装github上的包
//ssh
npm i git+ssh://<ssh地址>
  1. 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"
  }
}
  1. node rigistry manager (nrm)
npm i nrm -g
//查看源列表
nrm ls
//切换源
nrm use <源名>
//测试速度
nrm test
  1. npx
  • npm 5.2版本后自带
  • 若项目本地有包,全局没有包,可以直接使用npx调用
  • 若本地和全局都没有,调用后会自动下载到一个临时文件,用完自动删除
  • –no-install:使用本地,本地没有直接挂
  • –ignore-exiting:不使用本地和全局,必须安装
npx --no-install http-server
npx --ignore-exiting http-server