关于包管理:包管理NPM

21次阅读

共计 2233 个字符,预计需要花费 6 分钟才能阅读完成。

NPM

  1. nvm
  2. 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 包治理

  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.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

应用 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

正文完
 0