首页 > 其他分享 >在 VS Code 上配置 Grafana 的本地开发环境

在 VS Code 上配置 Grafana 的本地开发环境

时间:2024-06-19 16:36:18浏览次数:15  
标签:依赖 PnP yarn Grafana Code Yarn VS

为了在 VS Code 上顺利进行 Grafana 的本地开发,需要配置 Node.js 环境、安装 Yarn 和依赖、并确保开发工具能够正常工作。以下是配置和启动本地开发环境的详细步骤,包括使用 yarn dlx 命令来确保 VS Code 正确配置。

步骤 1:安装并使用正确版本的 Node.js

首先,确保你使用的是 Node.js 的正确版本。这里使用 nvm(Node Version Manager)来管理 Node.js 版本。

  1. 安装 NVM(如果尚未安装):

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
    source ~/.nvm/nvm.sh
    
  2. 克隆项目

    git clone https://github.com/grafana/grafana.git
    
  3. 安装和使用指定版本的 Node.js

    nvm install v16.16.0
    nvm use v16.16.0
    

步骤 2:清理 Yarn 缓存并安装依赖

接下来,我们需要清理 Yarn 缓存并安装项目的依赖项。

  1. 清理 Yarn 缓存

    yarn cache clean
    
  2. 安装依赖并确保安装锁定

    yarn install --immutable
    

    --immutable 选项确保依赖安装严格按照 yarn.lock 文件的内容进行。

步骤 3:启动项目

在依赖安装完成后,可以启动项目来确认一切正常。

  1. 启动项目
    yarn start
    

步骤 4:配置 VS Code 的开发环境

为了让 VS Code 能够正确识别并使用 Yarn Plug'n'Play (PnP) 的依赖管理方式,我们需要运行以下命令来生成相应的 SDK 文件。

  1. 生成 SDK 文件
    yarn dlx @yarnpkg/pnpify --sdk
    
    或者
    yarn dlx @yarnpkg/sdks
    

步骤 5:配置 VS Code 设置

确保 VS Code 正确配置以使用生成的 SDK 文件。

  1. 打开 VS Code 设置
    在 VS Code 中,按 Ctrl + ,(Windows/Linux)或 Cmd + ,(macOS)打开设置。

  2. 配置 settings.json
    点击右上角的“打开设置 (JSON)”图标,添加以下配置:

    {
      "typescript.tsdk": ".yarn/sdks/typescript/lib",
      "eslint.nodePath": ".yarn/sdks"
    }
    
  3. 选择 TypeScript 版本
    打开 VS Code 命令面板(按 Ctrl + Shift + P),选择 TypeScript: Select TypeScript Version,然后选择 Use Workspace Version

总结

通过以上步骤,你可以在 VS Code 上配置并启动 Grafana 的本地开发环境。此配置确保你使用正确版本的 Node.js,依赖严格按照锁定文件安装,并且 VS Code 能够正确识别和使用 PnP 的依赖管理方式。

完整命令列表

以下是完整的命令列表,按顺序执行即可配置和启动本地开发环境:

nvm install v16.16.0
nvm use v16.16.0
yarn cache clean
yarn install --immutable
yarn start
yarn dlx @yarnpkg/pnpify --sdk
# 或者
yarn dlx @yarnpkg/sdks

通过这些步骤,你将能够在 VS Code 上顺利进行 Grafana 的本地开发。如果遇到任何问题,请确保所有工具和依赖项都是最新版本,并参考相关文档或社区支持。


Yarn Plug'n'Play(PnP)是 Yarn 2(也称为 Yarn Berry)引入的一项重要功能,它改变了传统的 Node.js 项目依赖管理方式。本文将详细介绍 Yarn PnP 的概念、工作原理以及如何在项目中使用。

什么是 Yarn Plug'n'Play(PnP)?

Yarn Plug'n'Play(PnP)是 Yarn 2 引入的一种新的依赖解析和管理机制。传统的 Node.js 项目通常通过在 node_modules 目录下安装依赖来管理依赖项。而使用 PnP,Yarn 2 不再直接生成 node_modules 目录,而是将依赖项映射到一个虚拟文件系统中,从而避免了实际文件的复制和路径解析。

PnP 的优势

  1. 性能提升

    • 减少磁盘占用:不再需要大量复制依赖文件到 node_modules 目录。
    • 快速启动:由于不需要等待 node_modules 的安装,项目启动时间更快。
    • 内存效率:PnP 能够更有效地管理内存,特别是对于大型项目或有大量依赖的项目。
  2. 依赖版本控制

    • 精确锁定:依赖的版本由 Yarn.lock 文件中的精确版本锁定,确保每次安装都能获得相同的依赖版本。
  3. 易于迁移和维护

    • 一致性:PnP 提供了统一的依赖管理和版本控制机制,减少了项目在不同开发者之间的配置差异。

如何使用 Yarn Plug'n'Play(PnP)

要在项目中使用 PnP,首先需要安装 Yarn 2。接着,在项目的根目录下创建一个 .yarnrc.yml 文件,并添加以下内容以启用 PnP:

nodeLinker: pnp

然后,可以通过以下命令来进行项目的初始化和依赖安装:

yarn set version berry  # 安装 Yarn 2
yarn init -y            # 初始化项目
yarn install            # 安装依赖

常用操作和配置

  1. 生成 SDK 文件

    在某些情况下,特定工具(如 VS Code)需要了解项目中的依赖结构。可以使用以下命令生成 SDK 文件:

    yarn dlx @yarnpkg/pnpify --sdk
    

    这将在项目根目录下生成必要的 SDK 文件。

  2. 与 TypeScript 集成

    如果项目使用 TypeScript,可以在 VS Code 的设置中配置 TypeScript 的路径:

    {
      "typescript.tsdk": ".yarn/sdks/typescript/lib"
    }
    
  3. 添加依赖

    使用 Yarn 添加依赖项与传统方式相同,但无需手动更新 node_modules,Yarn 会自动更新依赖并更新 PnP 虚拟文件系统。

    yarn add <package-name>
    
  4. 删除依赖

    同样,使用 Yarn 删除依赖项也是类似的方式:

    yarn remove <package-name>
    

总结

Yarn Plug'n'Play(PnP)是 Yarn 2 中的一个重要功能,通过虚拟文件系统的方式管理和解析依赖项,极大地提升了项目的性能和管理效率。通过以上介绍,你现在应该对 PnP 的概念、优势以及如何在项目中使用有了更深入的理解。对于开发大型或需要快速启动的项目,特别是在多人协作环境中,PnP 是一个强大的工具,值得尝试和采用。

标签:依赖,PnP,yarn,Grafana,Code,Yarn,VS
From: https://www.cnblogs.com/sening/p/18256536

相关文章

  • DeepSeek-Coder-V2: Breaking the Barrier of Closed-Source Models in Code Intellig
    DeepSeek-Coder-V2:BreakingtheBarrierofClosed-SourceModelsinCodeIntelligence相关链接:arxivgithub关键字:开源、代码智能、混合专家模型(MoE)、编程语言支持、上下文长度扩展摘要我们介绍了DeepSeek-Coder-V2,这是一个开源的混合专家(MoE)代码语言模型,其性......
  • 常用的vscode配置
    {"extensions.autoUpdate":"onlySelectedExtensions","workbench.iconTheme":"material-icon-theme","vsicons.dontShowNewVersionMessage":true,"editor.fontSize":16,"editor.codeAct......
  • LeetCode80. 删除有序数组中的重复项 II题解
    LeetCode80.删除有序数组中的重复项II题解题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/题目描述:给你一个有序数组nums,请你原地删除重复出现的元素,使得出现次数超过两次的元素只出现两次,返回删除后数组的新长度。不要使用额外的数......
  • LeetCode26. 删除有序数组中的重复项题解
    LeetCode26.删除有序数组中的重复项题解题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array题目描述:给你一个非严格递增排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一......
  • SQLite vs MySQL vs PostgreSQL对比总结
    开发业务系统时,是绕不开RDBMS(关系型数据库)的。虽然现在诞生了各种NoSQL的数据库,RDBMS在业务系统中的严谨和优势依然无法取代。近几年大大小小的项目中,常用的三种RDBMS(SQLite,MySQL,Postgres)都有多次接触过,一些使用心得记录如下,供大家参考。1.SQLiteSQLite是一个独立的、基于文件......
  • QEMU + Vscode + Arm Arch's Linux调试小记
    QEMU+Vscode+ArmArch'sLinux调试小记​ 前几天看到了一篇讲授如何调试ARMLinux内核的文章,这里现在记录一下调试ARMLinux内核的办法下载QEMU​ 对于ArchLinux用户而言,没有必要自己编译,直接上AUR源下载就行。我自己有打算研究和调试多个架构,所以我自己下载了:yay-Sqem......
  • python模块之codecs
    python模块codecspython对多国语言的处理是支持的很好的,它可以处理现在任意编码的字符,这里深入的研究一下python对多种不同语言的处理。有一点需要清楚的是,当python要做编码转换的时候,会借助于内部的编码,转换过程是这样的:原有编码->内部编码->目的编码python的内部......
  • 代码随想录 算法训练营day11 Leetcode150 逆波兰表达式求值 Leetcode239 滑动窗口最大
    Leetcode150逆波兰表达式求值题目链接栈classSolution{publicintevalRPN(String[]tokens){Deque<Integer>stack=newLinkedList();for(Strings:tokens){if("+".equals(s)){//leetcode内置jdk的问题,不能使用==......
  • EtherCAT主站SOEM -- 44 -- win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机
    EtherCAT主站SOEM--44--win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机走周期同步位置模式(CSP模式)0QT-SOEM及STM32F767-SOEM视频欣赏及源代码链接:0.1Linux--Ubuntu系统之QT-SOEM博客、视频欣赏及源代码链接0.2STM32F767-SOEM博客、视频欣赏及源......
  • simd example code
    Sure,hereisasimpleCexamplethatusesSIMD(SingleInstruction,MultipleData)instructionswithIntel'sSSE(StreamingSIMDExtensions)orAVX(AdvancedVectorExtensions)intrinsics.Thiscodemultipliestwoarraysoffloatselement-wiseusing......