码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 深入了解 npm:Node.js 包管理工具详解


    文章目录

      • 一、npm 基本概念
        • 1.1 什么是 npm?
        • 1.2 package.json 文件
      • 二、npm 常用命令
        • 2.1 初始化项目
        • 2.2 安装依赖
          • 2.2.1 安装单个包
          • 2.2.2 全局安装包
          • 2.2.3 安装开发依赖
        • 2.3 移除依赖
        • 2.4 更新依赖
        • 2.5 查看已安装的包
        • 2.6 发布包
      • 三、npm 高级用法
        • 3.1 使用 npm scripts
        • 3.2 使用 npx 运行包
        • 3.3 使用 npm 版本管理
        • 3.4 使用私有 npm 仓库
        • 3.5 使用 npm Hook
      • 四、常见问题与解决方案
        • 4.1 依赖冲突
        • 4.2 npm 缓存问题
        • 4.3 权限问题
      • 五、总结

    在这里插入图片描述

    🎉欢迎来到Java学习路线专栏~探索Java中的静态变量与实例变量


    • ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹
    • ✨博客主页:IT·陈寒的博客
    • 🎈该系列文章专栏:Java学习路线
    • 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 数据结构学习
    • 🍹文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
    • 📜 欢迎大家关注! ❤️

    npm(Node Package Manager)是 Node.js 的包管理工具,也是全球最大的 JavaScript 包管理生态系统。它是每个 Node.js 开发者的必备工具,不仅可以用来管理项目中的依赖包,还可以用于发布和管理自己的 JavaScript 库。本文将详细介绍 npm 的基本概念、常用命令以及如何使用 npm 高效地管理项目。
    在这里插入图片描述

    一、npm 基本概念

    1.1 什么是 npm?

    npm 是一个包管理工具,主要功能包括:

    • 安装第三方包:从 npm 官方库下载并安装第三方包。
    • 管理依赖包:管理项目中的依赖包,包括添加、删除、更新等操作。
    • 发布自己的包:将自己的库发布到 npm 官方库,供其他开发者使用。

    1.2 package.json 文件

    package.json 是 npm 项目的核心文件,包含了项目的基本信息、依赖包信息、脚本等内容。一个典型的 package.json 文件如下:

    {
      "name": "my-project",
      "version": "1.0.0",
      "description": "A sample project",
      "main": "index.js",
      "scripts": {
        "start": "node index.js",
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "Your Name",
      "license": "ISC",
      "dependencies": {
        "express": "^4.17.1"
      },
      "devDependencies": {
        "nodemon": "^2.0.7"
      }
    }
    

    二、npm 常用命令

    2.1 初始化项目

    在创建新的 npm 项目时,首先需要生成 package.json 文件。可以使用 npm init 命令:

    npm init
    

    这会启动一个交互式的问答过程,帮助你生成 package.json 文件。你也可以使用 -y 参数跳过所有提问,生成默认配置的 package.json 文件:

    npm init -y
    

    2.2 安装依赖

    2.2.1 安装单个包

    使用 npm install 或者 npm i 命令来安装依赖包:

    npm install express
    
    2.2.2 全局安装包

    有些工具包需要全局安装,可以使用 -g 参数:

    npm install -g nodemon
    
    2.2.3 安装开发依赖

    开发依赖(devDependencies)是仅在开发环境中需要的包,可以使用 --save-dev 或 -D 参数:

    npm install --save-dev jest
    

    2.3 移除依赖

    使用 npm uninstall 命令来移除不需要的依赖包:

    npm uninstall express
    

    2.4 更新依赖

    使用 npm update 命令可以更新项目中的依赖包:

    npm update
    

    2.5 查看已安装的包

    使用 npm list 命令可以查看当前项目中已安装的所有包:

    npm list
    

    2.6 发布包

    使用 npm publish 命令可以将自己的包发布到 npm 官方库。首先,需要在项目根目录下创建一个 .npmignore 文件,类似于 .gitignore,用于指定哪些文件不需要被发布。

    npm publish
    

    三、npm 高级用法

    3.1 使用 npm scripts

    npm scripts 可以在 package.json 文件的 scripts 字段中定义一些脚本命令,方便项目开发和管理。常见的脚本命令包括启动项目、运行测试、构建项目等。

    "scripts": {
      "start": "node index.js",
      "test": "jest",
      "build": "webpack --config webpack.config.js"
    }
    

    然后,可以使用 npm run 来执行这些脚本:

    npm run start
    npm run test
    npm run build
    

    3.2 使用 npx 运行包

    npx 是 npm 版本 5.2.0 以后自带的一个命令,允许开发者在不全局安装包的情况下执行命令。例如:

    npx create-react-app my-app
    

    3.3 使用 npm 版本管理

    npm 版本管理可以通过 npm outdated 查看过时的依赖包,通过 npm audit 检查并修复已知的安全漏洞:

    npm outdated
    npm audit
    npm audit fix
    

    3.4 使用私有 npm 仓库

    在一些企业项目中,可能需要使用私有 npm 仓库。可以通过配置 .npmrc 文件来实现:

    registry=https://registry.your-company.com/
    

    3.5 使用 npm Hook

    npm 支持在特定生命周期阶段执行自定义命令,这些命令称为 Hook。例如,preinstall 和 postinstall 是两个常用的 Hook:

    "scripts": {
      "preinstall": "echo Before installation",
      "postinstall": "echo After installation"
    }
    

    四、常见问题与解决方案

    4.1 依赖冲突

    在多包项目中,可能会遇到依赖包版本冲突的问题。可以通过 npm ls 命令查看详细的依赖树,找出冲突的具体包:

    npm ls
    

    4.2 npm 缓存问题

    有时安装包时会遇到缓存问题,可以通过清理缓存来解决:

    npm cache clean --force
    

    4.3 权限问题

    在全局安装包时,可能会遇到权限问题。可以通过以下命令解决:

    sudo npm install -g <package>
    

    五、总结

    npm 是 Node.js 生态系统中不可或缺的一部分。通过本文的介绍,你应该已经掌握了 npm 的基本使用方法和一些高级技巧。无论是管理项目依赖,还是发布自己的包,npm 都提供了丰富的功能来满足开发者的需求。希望本文能够帮助你更加高效地使用 npm,提升项目开发效率。


    🧸结尾 ❤️ 感谢您的支持和鼓励! 😊🙏
    📜您可能感兴趣的内容:

    • 【Java面试技巧】Java面试八股文 - 掌握面试必备知识(目录篇)
    • 【Java学习路线】2023年完整版Java学习路线图
    • 【AIGC人工智能】Chat GPT是什么,初学者怎么使用Chat GPT,需要注意些什么
    • 【Java实战项目】SpringBoot+SSM实战:打造高效便捷的企业级Java外卖订购系统
    • 【数据结构学习】从零起步:学习数据结构的完整路径

    在这里插入图片描述

  • 相关阅读:
    汇编指令集合
    《第一行代码Andorid》阅读笔记-第六章
    flutter深研
    【已解决】Unity Coroutinue 协程未有效执行的问题
    R语言七天入门教程三:学习基本结构
    根据MediatR的Contract Messages自动生成Minimal WebApi接口
    FPGA 学习笔记:Vitis IDE launch failed 的解决方法
    线程池和并行处理 、线程池的作用
    Grafana Mimir:支持乱序的指标采集
    通俗易懂讲解大模型:Tokenizer
  • 原文地址:https://blog.csdn.net/qq_43546721/article/details/138873478
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号