npm (Node Package Manager) 简介

npm 是 Node.js 的默认包管理工具,用于管理和分发JavaScript库和工具。它允许开发者轻松安装、更新、配置和卸载这些包。npm 提供了一个命令行客户端,同时也维护着一个大型的在线软件注册表(npm registry),其中包含了成千上万的开源包。

npm 的基本使用

安装与初始化
  1. 安装 Node.js 和 npm

    • 通常安装了 Node.js 后,npm 也会一并安装。你可以通过以下命令检查是否已经安装以及版本信息:

      bash 复制代码
      node -v
      npm -v
  2. 创建新项目

    • 在项目的根目录下运行 npm init 命令,可以创建一个新的 package.json 文件,这个文件定义了项目的元数据及依赖关系。

      bash 复制代码
      npm init -y # 使用默认设置快速初始化
安装依赖包
  1. 安装全局包

    • 全局安装的包可以在任何地方使用,例如CLI工具。

      bash 复制代码
      npm install -g <package-name>
  2. 安装本地包

    • 本地安装的包只会在当前项目中可用,并且会被添加到 package.jsondependenciesdevDependencies 中。

      bash 复制代码
      npm install <package-name> --save    # 添加到dependencies
      npm install <package-name> --save-dev # 添加到devDependencies
  3. 安装特定版本的包

    • 可以指定要安装的具体版本号或版本范围。

      bash 复制代码
      npm install <package-name>@<version>
  4. 安装所有依赖

    • 当克隆了一个已有 package.json 的项目时,可以通过以下命令安装所有列出的依赖。

      bash 复制代码
      npm install
更新与卸载
  1. 更新依赖包

    • 更新 package.json 中列出的所有依赖到最新版本。

      bash 复制代码
      npm update
  2. 卸载依赖包

    • 卸载不再需要的包,并从 package.json 中移除。

      bash 复制代码
      npm uninstall <package-name>
包的发布
  1. 登录 npm 账户

    • 如果你想发布自己的包,首先需要登录。

      bash 复制代码
      npm login
  2. 发布包

    • 确保你的 package.json 文件配置正确后,可以使用以下命令发布。

      bash 复制代码
      npm publish
其他常用命令
  • 查看已安装的包

    bash 复制代码
    npm list
    npm list -g --depth=0 # 查看全局安装的包
  • 清理缓存

    bash 复制代码
    npm cache clean --force
  • 查找过时的包

    bash 复制代码
    npm outdated
  • 运行脚本

    • package.json 文件中的 scripts 字段可以定义一些自定义命令,比如启动应用、构建等。

      bash 复制代码
      npm run <script-name>

最佳实践

  • 锁定版本 :使用 package-lock.json 文件来确保不同环境中安装的依赖版本一致。
  • 安全更新 :定期运行 npm audit 来检查并修复潜在的安全漏洞。
  • 避免过多依赖:尽量减少不必要的依赖,保持项目的简洁性。
  • 使用 .npmrc 文件 :对于私有仓库或其他特殊配置,可以使用 .npmrc 文件来进行个性化设置。
相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
前端小万1 天前
写公众号赚了 3000 块后,我做了一款叫 "一键成稿" 的软件
前端·微信小程序
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
三十而立洋1 天前
Cookie 详解:从产生到安全,一次讲透
前端·javascript
卡布鲁1 天前
把一个 Vite + Vue3 应用塞进 qiankun (React + Umi3) 主站:十个坑的复盘
前端·javascript·react.js
汉堡大王95271 天前
Jev:不是聊天机器人, 而是一个智能 if 语句
前端·人工智能·后端
梦想很大很大1 天前
从运行事实到回归证据:Workrun 的 Telemetry 与 Evaluation 实践
前端·人工智能·后端
计算机魔术师1 天前
Meta Muse agent 接入 Shopify 的 Shop Pay 实现代理式购物
前端
沙蒿同学1 天前
我用 Go 搭了一条 AI Agent 流水线:从 1 张商品图到一整套淘宝详情页
前端·javascript·后端