@endorlabs/go-npm

中文文档
0.1.14发布于 2023/10/20Apache-2.0CommonJS零依赖近 30 天下载 1万

通过国家预防机制分发和安装 Go 二进制

中文使用文档
文档目录8 节
  1. 去国家防范机制
  2. (@gzuidhof):从基地迁出 go-npm 包装
  3. 分配跨平台 通过国家预防机制开展二进制
  4. 开玩笑! 为什么是国家预防机制?
  5. 好吧,告诉我如何?
  6. 1. 出版二进制
  7. 2. 为您的国家防范机制应用程序创建一个 package.json 文件
  8. 3. 分发给用户

去国家防范机制

(@gzuidhof):从基地迁出 go-npm 包装

  • 支持zip和非压缩二进制.
  • 添加对 arm64 结构.
  • 用于Windows平台的修复(二进制会放置在消费者错误的地方).
  • 使用 esbuild,去除70个包的依赖性(包括像Babel这样的大东西). 现在您的用户只需下载一个额外的软件包( N)@gzuidhof/go-npm) (中文(简体) ).

分配跨平台 通过国家预防机制开展二进制

用戈兰格写的应用程序是可移植的 - 您可以轻松地交叉编译二进制,在Windows,Mac,和Linux上工作. 但如何向顾客分发二进制? 当你发布新版本时,他们是如何更新二进制的?

利用国家预防机制分发跨平台 Go 二进制

开玩笑! 为什么是国家预防机制?

  • 跨平台:国家防范机制是唯一一个工作跨平台的受欢迎的软件包管理者.
  • 入场次数低于:大多数开发者已经安装了国家预防机制.
  • 免费疼痛出版:只需要一个命令就可以发布 - npm publish
  • 死易安装更新故事( U)数字 : npm install/update -g your-awesome-app
  • 添加 $PATH: 国家防范机制将自动将您的二进制位置添加到 $PATH 并生成 Windows 的 .cmd 文件 。 你的应用程序在安装后才起作用!

好吧,告诉我如何?

1. 出版二进制

设置您的 前往应用程序以编译并发布二进制到文件服务器 。 这可以是Github Releases或亚马逊S3甚至Dropbox. 你只需要一个链接.

我喜欢用 释放器 通过发布程序设置。 您创建一个简单的 YAML 配置文件并运行 goreleaser CLI发布各种平台/建筑组合到Github的二进制:

# .goreleaser.yml
# Build customization
builds:
  - binary: drum-roll
    goos:
      - windows
      - darwin
      - linux
    goarch:
      - amd64

go-npm 将拉动安装软件包的平台和架构的适当二进制.

2. 为您的国家防范机制应用程序创建一个 package.json 文件

要向国家预防机制发布,你需要创建 package.json 文档。 您给您的应用程序一个名称, 链接到Readme, Github 仓库等, 更重要的是添加 go-npm 作为依赖。 您可以在您的工程中的空目录或一个单独的 Git 仓库中创建此文件 。 这是你的选择.

创建软件包.json

$ npm init

回答问题以创建初始软件包.json 文件

添加 go-npm 依赖性

从包含 package.json 文件的目录中, do

$ npm install @gzuidhof/go-npm --save

这将安装到您的软件包下。 json文件 。 它还将创建一个 node_modules 目录 go-npm 软件包已下载。 你不需要这个目录,因为你只是要发布模块,而不是自己消费. 遂去删去.

$ rm -r node_modules

添加邮箱和预安装脚本 这是魔力,你要跑 go-npm install 在它完成您的软件包安装后 。 这将从 Github 或 Amazon S3 中拉出二进制,并安装在 NPU 中 bin 目录。 bin 目录下的二进制可以立即在您的终端中使用 .

编辑 package.json 文件并添加以下内容:

"scripts": {
    "postinstall": "go-npm install",
    "preuninstall": "go-npm uninstall",
}

go-npm uninstall 简单地删除二进制 bin 国家防范机制之前的目录解开您的软件包.

配置二进制路径

你得告诉 go-npm 在哪里下载二进制,在哪里安装。 编辑 package.json 文件并添加以下配置.

"goBinary": {
      "name": "command-name",
      "path": "./bin",
      "url": "https://github.com/user/my-go-package/releases/download/v{{version}}/myGoPackage_{{version}}_{{platform}}_{{arch}}.tar.gz"
  • 名称: 命令用户使用的名称来运行二进制 .
  • 路径: 二进制将下载到的临时路径
  • url 密码密码: HTTP 托管二进制的 Web 服务器 .

以下变量可供自定义 URL :

  • {{version}}: 版本编号从 package.json 文档。 当你向国家预防机制公布你的软件包时,它会使用这个版本的号码. 参见:0.0.1
  • {{platform}}数字 : $GOOS 平台值
  • {{arch}}数字 : $GOARCH 结构值
  • {{win_ext}}: 可选 .exe 窗口资产的扩展名.

如果您使用 goreleaser 以发布您的模块,它将自动在您的 URL 中设置正确的架构和平台.

向国家预防机制公布

现在只剩下向国家防范机制公布了 正如我之前承诺的,只有一个命令

$ npm publish

3. 分发给用户

要安装 :

npm install -g your-app-name

要更新 :

npm update -g your-app-name


与QQ对社区 萨纳特·库马尔·拉梅什

版本与发布记录

@endorlabs/go-npm 共发布 1 个版本,首次发布于 2023/10/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.1.14latest2023/10/203 年前

关于 @endorlabs/go-npm 的常见问题

@endorlabs/go-npm 是什么?

通过国家预防机制分发和安装 Go 二进制

如何安装 @endorlabs/go-npm?

在项目目录运行 npm install @endorlabs/go-npm,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 go-npm,可以用 npx go-npm 直接运行。

@endorlabs/go-npm 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/endorlabs__go-npm 是否存在。

@endorlabs/go-npm 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@endorlabs/go-npm 可以商用吗?

@endorlabs/go-npm 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@endorlabs/go-npm 的下载量有多少?

根据 npm 官方下载统计,@endorlabs/go-npm 在 2026/10/14 – 2026/11/12 这 30 天内被下载 10,345 次,日均约 345 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@endorlabs/go-npm 还在维护吗?

最新版本 0.1.14 发布于 2023/10/20(3 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2023/10/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。