NPM
- nvm
- npm
1. NVM
NVM(Node Version Manager):Node版本治理
Windows上装置
地址
下载压缩包间接装置即可
常用命令
-
查看
//查看可装置的node版本 nvm ls available //查看曾经装置的node版本 nvm ls
-
装置与卸载
//装置一个node nvm install [version] //卸载一个node nvm uninstall [version]
-
切换
//切换node版本 nvm use [version]
2 NPM
NPM(Node Package Manager):Node包治理
- 包治理
- 上传包
- 脚本
- NRM
- 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.json
npm 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
应用
start
、test
、build
等指令不必加run,npm间接加这些指令就可执行脚本
变量
- $npm_package_ 能够获取package.json中的字段
- env 能够列出所有环境变量
默认值
start
:node server.jsinstall
: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
发表回复