NPM

  1. nvm
  2. npm

1. NVM

NVM(Node Version Manager):Node版本治理

Windows上装置
地址

下载压缩包间接装置即可

常用命令

  • 查看

    //查看可装置的node版本nvm ls available//查看曾经装置的node版本nvm ls
  • 装置与卸载

    //装置一个nodenvm install [version]//卸载一个nodenvm uninstall [version]
  • 切换

    //切换node版本nvm use [version]

2 NPM

NPM(Node Package Manager):Node包治理

  1. 包治理
  2. 上传包
  3. 脚本
  4. NRM
  5. NPX

2.1 包治理

全局装置

//全局装置与卸载 不指定version默认为以后最新版本npm install(i) package[@verison] --global(-g)npm uninstall package[@verison] -global(-g)

查看

//查看包可装置的版本npm view package[@verison] versions//查看装置的所有包npm list(ls)//查看已装置的一个包npm list(ls) | grep package

本地装置

//初始化package.jsonnpm init -y//装置至生产环境npm i package[@verison] [--save]//装置至开发环境npm i package[@verison] --dev(-D)//卸载不必增加额定的修饰符

更新版本
package.json中的版本锁定

    • :不锁定版本 - 更新三位
  • ^X.X.X:锁定第一位 - 更新后两位
  • ~X.X.X:锁定前两位 - 更新最初一位
  • X.X.X :锁定三位 - 指定版本

更新

//依据锁定查看可更新信息npm outdated//更新至锁定的最新版本npm update//装置指定版本npm i package@version

革除缓存

npm cache clean --force
包第一次装置失败后再次装置也可能失败,须要革除缓存

2.2 上传包

创立一个包

//初始化npm init//index.js commonJS导出function sayHello() {    return 'Hello World'}module.exports.sayHello = sayHello//其余文件夹下引入let a = require('../test/index')console.log(a.sayHello());
在package.json中配置name - 包名
version包版本

npm源

//查看源npm config get registry//切换源npm config set registry url
npm淘宝镜像源:https://registry.npm.taobao.org/
npm源:https://registry.npmjs.org/

登录与上传

//登录 - 先在npm官网注册npm aduser//上传 - 能够在npm官网查看该包npm publish//卸载 - 从npm官网中删除npm unpublish --force//在其余文件在装置npm i crofy-hello -D//引入let a = require('crofy-hello')console.log(a.sayHello());

2.3 脚本

在package.json中的scripts选项中自定义脚本
编写脚本

//自定义指令"scripts": {    "hello1": "node script1.js"    "hello2": "node script2.js"}//并行执行 - 先后不确定npm run hello1 & npm run hello2//串行执行 - 先后顺序确定npm run hello1 && npm run hello2
应用starttestbuild等指令不必加run,npm间接加这些指令就可执行脚本

变量

  • $npm_package_ 能够获取package.json中的字段
  • env 能够列出所有环境变量

默认值

  • start:node server.js
  • install:node-gyp rebuild

cross-env
运行跨平台设置和应用环境变量的脚本

//装置npm install --save-dev cross-env//应用 "build": "cross-env NODE_ENV=production webpack --config build/webpack.config.js"
NODE_ENV环境变量将由 cross-env 设置 打印 process.env.NODE_ENV === 'production'

2.4 NRM

NRM(NPM Registry Manager):npm源治理

//装置npm i nrm -g//查看可用源nrm ls//切换源nrm use taobao//测试速度nrm test

2.5 NPX

NPX(NPM Package Extention):npm包扩大

能够间接应用,没有就全局装置
调用我的项目外部装置的模块

间接调用命令

//本地装置gulp用于测试性能 - 其余的也能够npm i gulp -D//查看gulp版本 - 因为gulp非全局装置没有gulp这个命令npx gulp -v
不必脚本与读取具体可执行文件

长期装置
默认:当没有包然而用npx执行了其命令,npx会将其下载到一个临时文件,执行完结再删除

//强制应用本地模块,不进行下载操作npx --no-install package//疏忽本地的同名模块,强制装置应用近程模块npx --ignore-existong package