ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Gatsby 与 npm:用 Node 包管理器安装、运行与维护 Gatsby 站点的完整指南

Gatsby 与 npm:用 Node 包管理器安装、运行与维护 Gatsby 站点的完整指南 Gatsby 与 npm用 Node 包管理器安装、运行与维护 Gatsby 站点的完整指南【免费下载链接】gatsbyReact-based framework with performance, scalability, and security built in.项目地址: https://gitcode.com/gh_mirrors/ga/gatsbynpmNode package manager是 Node.js 生态的默认包管理器也是 Gatsby 官方推荐站点开发者使用的依赖管理工具。本文以 docs/docs/glossary/npm.md 为骨架结合仓库中 gatsby-cli、create-gatsby 等包的源码实现系统讲解如何在 Gatsby 项目中使用 npm从全局安装 Gatsby CLI、用 npx 免安装运行到安装插件与维护依赖锁文件让你掌握 Gatsby 站点从零搭建到团队协作的完整 npm 工作流。什么是 npmnpm即 Node package manager是 Node.js JavaScript 运行时自带的默认包管理器。它负责两件核心事情安装和更新依赖为基于 Node 的项目安装、升级、卸载各种库与框架即 dependencies与 npm Registry 交互从全球最大的 JavaScript 包注册表拉取或发布软件包。在 Gatsby 生态中你将使用 npm 来安装和升级 Gatsby 本体以及它的各类插件。Gatsby 本身就是通过 npm 发布的开源包这一点从仓库结构可以直接印证根目录 package.json 的workspaces字段声明了packages/*这一 monorepo 布局而gatsby、gatsby-cli等所有核心包都位于 packages 目录下发布后均可通过npm install package-name安装。npm 是一个命令行工具你需要使用终端macOS/Linux 的 Terminal 或 Windows 的 Command Prompt来执行它的命令。调用方式统一为npm command例如npm help会列出可用功能清单包括install、uninstall、update和search等常用子命令。npm 随 Node.js 一起安装npm 会在 Node.js 的默认安装流程中一并装入你的环境无需额外步骤。入门教程的环境准备章节建议安装 Node.js v18、v20、v22 或 v24 版本而当前仓库根 package.json 的engines字段声明了更精确的运行前提node 18.0.0 26、npm 8.0.0。也就是说只要你的 Node 版本满足该范围npm 就已就绪。安装 Node.js 后可运行npm --version与node --version验证环境是否正常。方式一全局安装 Gatsby CLI推荐入门Gatsby 提供独立的命令行工具包gatsby-cli。从源码看该包通过bin字段把gatsby命令暴露给终端packages/gatsby-cli/package.json 中声明了bin: { gatsby: cli.js }。要直接使用gatsby new这类 CLI 命令需要将 Gatsby CLI全局安装使用npm install配合--global简写-g标志npm install -g gatsby-cli安装完成后即可运行gatsby new my-project创建新的 Gatsby 项目。CLI 会接管后续的脚手架搭建、依赖安装与 git 初始化等流程详见下文gatsby new背后发生了什么。如果你此前安装过旧版 Gatsby CLI这条命令会同时将其更新到最新版本。验证安装gatsby --version 与 gatsby --help安装完成后建议先验证 CLI 是否可用。运行gatsby --version查看版本号——本仓库中gatsby-cli的版本为 5.x见 packages/gatsby-cli/package.json运行gatsby --help则可查看全部可用命令与选项输出内容如上图所示涵盖develop、build、serve、info、clean、repl、plugin、new、telemetry、options等命令以及--verbose、--no-color、--json等全局选项。方式二用 npx 免全局安装运行你同样可以使用npx来安装并运行 Gatsby。npx 随 npm 一同发布允许你下载并执行合二为一在一条命令里临时拉取目标包并运行其命令而不污染全局环境。注意npx 要求 npm 版本5.2 或更高。如果安装的是最新版 Node 与 npm通常已自带 npx否则请先升级 Node 和/或 npm。例如与其先执行npm install -g gatsby-cli再执行gatsby new my-project不如一条命令完成npx gatsby new my-project这条命令会下载并安装最新版 Gatsby然后在my-project文件夹中创建新的 Gatsby 项目。不过需要留意两种方式的差异使用 npx 不会让 Gatsby CLI 全局可用。如果你通过 npx 安装 Gatsby后续执行 Gatsby 命令时需要一直带上npx前缀例如npx gatsby develop或借助项目脚本npm run develop。利用 starter 内置的 npm run scripts无论用哪种方式安装新建的 Gatsby 项目都会在package.json中预置好常用的运行脚本。以仓库内置的 starters/hello-world/package.json 为例scripts: { build: gatsby build, develop: gatsby develop, start: gatsby develop, serve: gatsby serve, clean: gatsby clean }这意味着即使 CLI 未全局安装你也可以在项目根目录执行npm run develop启动开发服务器、npm run build构建生产版本。这也正是原文档提到的用npm run执行 Gatsby 命令的实际落点。gatsby new 背后发生了什么源码视角gatsby new看似简单内部却是一套完整的脚手架流程。从 packages/gatsby-cli/src/create-cli.ts 的实现看该命令有两种执行路径不带任何参数gatsby new会进入交互式向导调用create-gatsby包通过命令行提示帮你选择 CMS、样式方案和插件带参数gatsby new rootPath starter直接调用 initStarter 函数从指定 starter 克隆或复制模板。随后initStarter会依次完成解析并校验项目路径与 starter 地址目标目录已存在package.json会直接报错见 init-starter.ts→ 通过git clone --recursive --depth1拉取远程 starter或从本地路径复制→ 删除 starter 自带的.git目录 → 自动执行依赖安装 → 必要时执行git init并创建初始提交。其中依赖安装逻辑值得展开init-starter.ts 的 install 函数 展示了实际执行的 npm 命令npm install --loglevel error --color always --legacy-peer-deps --no-audit--loglevel error仅输出错误级别的日志保持终端干净--legacy-peer-deps以宽松的 peer 依赖解析方式兼容不同版本的 React 等对等依赖--no-audit跳过安装时的安全审计加快安装速度。同时CLI 会自动检测包管理器优先读取配置存储中的cli.packageManager偏好见 package-manager.ts若未设置则通过环境变量npm_config_user_agent判断你当前使用的是 npm 还是 Yarn。如果最终选择 npm还会移除 starter 中可能残留的yarn.lock避免锁文件冲突反之选择 Yarn 时则删除package-lock.json。安装完成后CLI 还会为新项目写入最小化 .gitignore内容为.cache、node_modules、public三行并执行首次 git 提交最后提示你cd my-project gatsby develop开始开发。用 npm 安装 Gatsby 插件Gatsby 拥有数量庞大的插件生态用于为站点增加功能或接入数据源。安装插件的流程与安装 Gatsby 本身完全相同——把它作为项目依赖装进package.json即可npm install gatsby-source-filesystem以上面这条命令为例它会将 gatsby-source-filesystem 插件加入项目依赖。关于插件的使用有两点必须注意即使你当初是用 npx 安装的 Gatsby安装插件依然使用npm install仅安装还不够还需要在gatsby-config.js中注册插件并配置选项插件的功能才会真正生效。提交锁文件保证团队与多设备一致执行npm install会同时更新项目中的两个文件package.json记录依赖的版本范围和package-lock.json锁定精确的依赖树与传递依赖版本。文档特别强调这两个文件都要提交到项目的代码仓库。这样做的价值在于当另一位团队成员git clone你的仓库后只需运行npm installnpm 就会依据package-lock.json还原出与开发时完全一致的依赖环境从而让 Gatsby 项目在团队成员与不同电脑之间保持高度一致避免我本地能跑你本地跑不起来的经典问题。使用 npm 还是 YarnGatsby 生态同时支持 npm 与 Yarn 两种包管理器。值得一提的是Gatsby 官方推荐在站点开发中使用 npm——绝大多数官方教程与示例都以 npm 演示详见 docs/docs/glossary/yarn.md这能最大程度避免教程命令与本地环境不一致带来的困惑。Yarn 则主要用于 Gatsby 核心源码开发当前仓库采用 Yarn workspaces 管理 monorepo贡献者环境搭建依赖 Yarn 1.x。如果你更偏好 Yarn也完全可行。首次运行gatsby new时 CLI 会询问默认包管理器也可以随时通过gatsby options set pm yarn或npm切换偏好详情见 Gatsby CLI 参考文档。该偏好会写入 CLI 的全局配置文件~/.config/gatsby/config.json影响后续所有新项目的依赖安装方式。小结与延伸阅读一句话总结 Gatsby 的 npm 工作流全局装 CLInpm install -g gatsby-cli或用 npx 临时运行npx gatsby new my-project→ 用npm install plugin添加插件并在gatsby-config.js中注册 → 提交package.json与package-lock.json→ 团队成员npm install复现环境。npm 贯穿了 Gatsby 站点的创建、开发、构建与协作全流程。想继续深入可以参考仓库内的以下资源Gatsby CLI 完整参考new、develop、build、serve、info、clean、repl等命令的详细参数与输出示例环境准备教程macOS/Linux/Windows 三种平台安装 Node.js 与 Gatsby CLI 的分步指引Node.js 术语表理解 Gatsby 赖以运行的 JavaScript 运行时Yarn 术语表了解 npm 之外的备选包管理器及其适用场景。【免费下载链接】gatsbyReact-based framework with performance, scalability, and security built in.项目地址: https://gitcode.com/gh_mirrors/ga/gatsby创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表