页面加载中
博客快捷键
按住 Shift 键查看可用快捷键
ShiftK
开启/关闭快捷键功能
ShiftA
打开/关闭中控台
ShiftD
深色/浅色显示模式
ShiftS
站内搜索
ShiftR
随机访问
ShiftH
返回首页
ShiftL
友链页面
ShiftP
关于本站
ShiftI
原版/本站右键菜单
松开 Shift 键或点击外部区域关闭
文章详情
互动
最近评论
暂无评论
标签
寻找感兴趣的领域
暂无标签
    0
    Node.JS包管理器npm的使用指南
    文章摘要
    npm是Node.js包管理工具,本篇文章涵盖安装、初始化、依赖安装、生产与开发依赖、全局包、脚本别名及淘宝镜像配置。
    nom使用指南 封面

    npm (Node Package Manager) 是 Node.js 官方内置的包管理工具,是前端开发中必须掌握的工具。

    1. npm 的安装

    Node.js 在安装时会自动安装 npm。安装完成后,可以通过以下命令查看版本号,以测试是否安装成功:

    BASH
    npm -v

    如果显示版本号,则说明安装成功。

    2.npm 基本使用

    2.1. 初始化项目

    在空目录下启动命令行工具,执行 npm init 命令,可以初始化一个项目。

    BASH
    npm init

    该命令会交互式地引导你创建一个 package.json 文件。package.json 是项目的配置文件,记录了项目的基本信息和依赖。

    初始化注意事项:

    • 包名 (name): 不能使用中文、大写字母,默认值为文件夹名称。

    • 版本号 (version): 需遵循 x.x.x 的格式,x 必须是数字,默认值为 1.0.0

    • 开源证书 (license): ISCMIT 证书功能上基本相同。

    • package.json 文件可以手动创建和修改。

    • 使用 npm init -ynpm init --yes 可以跳过交互,使用默认配置极速创建 package.json 文件。

    package.json 示例:

    BASH
    {
      "name": "my-project",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }

    2.2. 搜索包

    可以通过两种方式搜索包:

    1. 命令行搜索: npm search <关键字>

    2. 网站搜索: 访问 npm 官网 进行搜索。

    2.3 下载安装包

    使用 npm install 或其简写 npm i 命令来安装包。

    BASH
    # 格式
    npm install <包名>
    npm i <包名>
    ​
    # 示例
    npm install uniq
    npm i uniq

    安装后,目录下会新增:

    • node_modules 文件夹: 存放下载的包。

    • package-lock.json 文件: 包的锁文件,用于锁定包的版本,确保在不同环境下安装的依赖版本一致。

    被安装的包被称为当前项目的依赖包(或简称依赖)。

    2.4 require 导入 npm 包流程

    当使用 require() 导入一个包时,Node.js 会按以下顺序查找:

    1. 在当前文件夹下的 node_modules 中寻找同名文件夹。

    2. 如果没找到,则去上级目录的 node_modules 中寻找,直至找到磁盘根目录。

    3 生产环境与开发环境

    • 开发环境: 程序员专门用来写代码的环境,通常是自己的电脑。

    • 生产环境: 项目代码正式运行的环境,通常是正式的服务器。

    4. 生产依赖与开发依赖

    依赖可以根据其使用场景分为两类:

    类型

    命令

    说明

    生产依赖

    npm i -S <包名>

    -S--save 的简写,也是默认选项。包信息会保存在 package.jsondependencies 属性中。这类包在项目开发和最终上线运行时都需要。

    npm i --save <包名>

    开发依赖

    npm i -D <包名>

    -D--save-dev 的简写。包信息会保存在 package.jsondevDependencies 属性中。这类包只在开发阶段使用,例如代码打包、压缩工具等。

    npm i --save-dev <包名>

    举例说明:
    做蛋炒饭需要大米、油、葱、鸡蛋、锅、煤气、铲子。

    • 生产依赖: 大米、油、葱、鸡蛋(制作和最终食用都会用到)。

    • 开发依赖: 锅、煤气、铲子(只在制作阶段使用)。

    5. 全局安装

    使用 -g 选项可以进行全局安装。

    BASH
    npm i -g nodemon

    全局安装后,可以在命令行的任何位置运行该命令(如 nodemon),不受工作目录影响。

    • 可以通过 npm root -g 查看全局安装包的位置。

    • 并非所有包都适合全局安装,通常只有全局工具类包才需要。

    5.1. 修改 Windows 执行策略

    在 Windows 的 PowerShell 中运行全局安装的 npm 脚本时,可能会遇到 禁止运行脚本 的安全错误。需要修改执行策略:

    1. 管理员身份打开 PowerShell。

    2. 键入命令 set-ExecutionPolicy remoteSigned

    3. 键入 A (是) 然后敲回车确认更改。

    4. 如果仍不生效,可以尝试重启 VS Code。

    5.2. 环境变量 Path

    Path 是操作系统的一个环境变量,用于存储可执行文件的路径。当在当前目录找不到命令时,系统会在 Path 变量列出的目录中查找。

    • 补充说明: 如果希望某个程序在任何目录下都能运行,应将其所在目录配置到 Path 环境变量中。

    • Windows 下查找命令位置:

      • cmd 命令行:where <命令名>

      • PowerShell 命令行:get-command <命令名>

    6. 安装项目依赖

    在项目协作中,node_modules 文件夹通常不会被提交到版本库。其他协作者可以通过以下命令,根据 package.jsonpackage-lock.json 文件自动安装所有依赖:

    BASH
    npm i
    # 或
    npm install

    7. 安装指定版本的包

    如果项目需要特定版本的包,可以使用以下命令:

    BASH
    # 格式
    npm i <包名@版本号>
    ​
    # 示例
    npm i jquery@1.11.2

    8. 删除依赖

    可以使用以下命令删除不需要的包:

    BASH
    # 局部删除
    npm remove <包名>
    npm r <包名>
    ​
    # 全局删除
    npm remove -g <包名>

    9. 配置命令别名

    可以在 package.jsonscripts 属性中配置命令别名,以简化常用命令的执行。

    BASH
    {
      "scripts": {
        "server": "node server.js",
        "start": "node index.js"
      }
    }

    配置完成后,可以使用以下命令执行:

    BASH
    npm run server
    npm run start

    补充说明:

    • npm start 是一个特殊的别名,执行时可以省略 run,直接使用 npm start。它通常用于启动项目。

    • npm run 命令具有向上级目录查找的特性,与 require 函数类似。

    • 对于一个陌生的项目,可以通过查看 scripts 属性来了解项目的一些常用操作

    配置 npm 淘宝镜像

    由于网络原因,直接使用 npm 官方源下载包的速度可能较慢。将 npm 的源配置为国内的淘宝镜像,可以显著提升下载速度。

    nrm (npm registry manager) 是一个专门用于管理 npm 源的工具,可以方便地在多个源之间进行切换。

    1.安装nrm

    首先需要全局安装 nrm 工具

    BASH
    npm install -g nrm

    2.查看可用源

    安装完成后,可以使用 nrm ls 命令查看所有可用的源列表。当前正在使用的源前面会有一个箭头 -> 指示。

    BASH
    nrm ls

    输出示例:

    BASH
      npm ---- https://registry.npmjs.org/
      yarn --- https://registry.yarnpkg.com/
      tencent - https://mirrors.cloud.tencent.com/npm/
      cnpm --- http://r.cnpmjs.org/
    * taobao - https://registry.npmmirror.com/
      npmMirror - https://skimdb.npmjs.com/registry/

    切换镜像源
    使用 nrm use <源名称> 命令可以快速切换到指定的源。例如,切换到淘宝源:

    BASH
    nrm use taobao

    补充说明:
    淘宝镜像是只读镜像,使用 nrm 方式进行配置,可以在需要上传时切换到官方镜像,灵活方便。

    作者头像
    数阵
    数阵的博客网站
    本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 数阵
    评论

    请登录后发表评论

    滚动到此处加载评论...
    来自 数阵 最新设计与科技的文章
    查看全部
    随便逛逛
    博客分类
    文章标签
    复制地址
    深色模式