npm 常用命令

一、npm 基础使用

1、npm 安装

前往node.js官网下载并安装工具,安装完毕在命令行输入以下命令测试是否安装成功,正确会出现版本号

npm -v

2、npm 配置阿里云镜像源

arduino 复制代码
npm config set registry https://registry.npmmirror.com

3、查看npm 配置信息

arduino 复制代码
npm config list

获取配置源信息

arduino 复制代码
npm config get registry

4、npm 安装jquery

ini 复制代码
npm install jquery --location=global

5、npm 配置代理

arduino 复制代码
npm config set proxy http://proxy-server-address:port
npm config set https-proxy http://proxy-server-address:port

若是代理须要认证的话能够这样来设置。

arduino 复制代码
npm config set proxy http://username:password@proxy-server-address:port
npm config set https-proxy http://username:password@proxy-server-address:port

如果你的代理服务器不支持HTTPS,你还需要修改npm的默认源。运行以下命令:

arduino 复制代码
npm config set registry http://registry.npmjs.org/ 

6、npm 登录

npm login

登录成功后,可以验证用户身份

bash 复制代码
npm who m i

7、npm 缓存用户登录信息

一旦登录成功,npm会将你的登录信息缓存到本地。这意味着在下一次使用npm时,它将自动使用你的登录凭据,而无需再次输入。

请注意,缓存的登录信息将在你退出终端或命令提示符窗口后失效。如果你需要清除缓存的登录信息,可以使用以下命令:

bash 复制代码
npm logout

8、最常用命令清除npm本地缓存

npm cache clean

9 、卸载模块

npm uninstall express

二、搭建npm 私服

1、准备数据

bash 复制代码
mkdir /lvmData/verdaccio  
cd /lvmData/verdaccio  
mkdir conf && mkdir storage && mkdir plugins  
cd conf  
touch htpasswd
vim config.yaml

2、配置 config.yaml

yaml 复制代码
Bash  
# 存放软件所有软件包的目录  
storage: ../storage  
# 存放所有插件的目录  
plugins: ../plugins  
  
web:  
  # 网站Title  
  title: Verdaccio  
  # 禁用Gravatar头像  
  # gravatar: false  
  # 排序方式 asc|desc  
  # sort_packages: asc  
  # 是否启用暗黑模式  
  # darkMode: true  
  # logo地址  
  # logo: http://somedomain/somelogo.png  
  # favicon地址  
  # favicon: http://somedomain/favicon.ico | /path/favicon.ico  
  
# i18n翻译配置  
# i18n:  
# 可用列表见:https://github.com/verdaccio/ui/tree/master/i18n/translations  
#   web: en-US  
  
auth:  
  htpasswd:  
    file: ./htpasswd  
    # 最大注册用户数,默认为 "+inf".  
    # 可用通过设置为-1禁止注册  
    # max_users: 1000  
  
# 上游npm库,这里可用设置为淘宝  
uplinks:  
  npmjs:  
    url: https://registry.npmmirror.com/  
  tencent:  
    url: https://mirrors.cloud.tencent.com/npm/  
  npmMirror:  
    url: https://skimdb.npmjs.com/registry/  
  taobao:  
    url: https://registry.npm.taobao.org  
  
packages:  
  # 作用域包  
  '@*/*':  
    # 允许所有人访问  
    access: $all  
    # 注册用户可访问  
    publish: $authenticated  
    # 注册用户可访问  
    unpublish: $authenticated  
    #proxy: tencent taobao npmjs npmMirror  
    proxy: tencent taobao npmjs npmMirror  
  
  '**':  
    # 默认情况下所有用户 (包括未授权用户) 都可以查看和发布任意包  
    # 你可以指定 用户名/分组名 (取决于你使用什么授权插件,默认的授权插件是内置的 htpasswd)  
    # 访问权限有三个关键词: "$all", "$anonymous", "$authenticated"  
    # $all 表示不限制,任何人可访问;  
    # $anonymous 表示未注册用户可访问;  
    # $authenticated 表示只有注册用户可访问  
    access: $all  
  
    # 允许所有注册用户发布/撤销已发布的软件包  
    # (注意:默认情况下任何人都可以注册)  
    publish: $authenticated  
    unpublish: $authenticated  
  
    # 如果私有包服务不可用在本地,则会代理请求到'npmjs'  
    #proxy: tencent taobao npmjs npmMirror  
    proxy: tencent taobao npmjs npmMirror  
  
# 您可以指定传入连接的HTTP /1.1服务器保持活动超时(以秒为单位)。  
# 值为0会使http服务器的行为类似于8.0.0之前的Node.js版本,后者没有保持活动超时。  
# 解决方法:通过给定的配置可以解决以下问题  
server:  
  keepAliveTimeout: 60  
  
publish:  
  allow_offline: true  
  
# 中间件  
middlewares:  
  audit:  
    enabled: true  
  
# 日志设置  
logs: { type: stdout, format: pretty, level: http }  
  
# 开放远程访问,允许所有IP  
listen:  
  - 0.0.0.0:4873

3、启动

bash 复制代码
V_PATH=/work/verdaccio; docker run -d -it --name verdaccio \  
  -p 4873:4873 \  
  -v $V_PATH/conf:/verdaccio/conf \  
  -v $V_PATH/storage:/verdaccio/storage \  
  -v $V_PATH/plugins:/verdaccio/plugins \  
  verdaccio/verdaccio

4、授予权限

bash 复制代码
chown root:root/work/verdaccio/conf/htpasswd  
chown root:root /work/verdaccio/storage  
chown root:root  /work/verdaccio/plugins

chmod -R 777  /work/verdaccio

5、注册用户

arduino 复制代码
npm adduser sqlark http://192.168.161.239:4873/

6、登录

arduino 复制代码
npm login --registry  http://192.168.161.239:4873/

7、包发布

发布的话就直接在某个需要发布包的项目的根目录下运行:

npm publish

然后在我们私服界面上就能看到发布的包

三、npm 源管理

这里我们为了操作方便,通过nrm来切换源

css 复制代码
npm i -g nrm

然后,使用nrm添加一个源

csharp 复制代码
nrm add sqlark http://192.168.161.239:4873/

然后使用命令 nrm ls 查看所有存在的源:

bash 复制代码
nrm ls
相关推荐
Мартин.2 小时前
[Meachines] [Easy] Sea WonderCMS-XSS-RCE+System Monitor 命令注入
前端·xss
昨天;明天。今天。3 小时前
案例-表白墙简单实现
前端·javascript·css
数云界3 小时前
如何在 DAX 中计算多个周期的移动平均线
java·服务器·前端
风清扬_jd3 小时前
Chromium 如何定义一个chrome.settingsPrivate接口给前端调用c++
前端·c++·chrome
安冬的码畜日常3 小时前
【玩转 JS 函数式编程_006】2.2 小试牛刀:用函数式编程(FP)实现事件只触发一次
开发语言·前端·javascript·函数式编程·tdd·fp·jasmine
ChinaDragonDreamer4 小时前
Vite:为什么选 Vite
前端
小御姐@stella4 小时前
Vue 之组件插槽Slot用法(组件间通信一种方式)
前端·javascript·vue.js
GISer_Jing4 小时前
【React】增量传输与渲染
前端·javascript·面试
eHackyd4 小时前
前端知识汇总(持续更新)
前端
万叶学编程7 小时前
Day02-JavaScript-Vue
前端·javascript·vue.js