去国家防范机制
(@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对社区 萨纳特·库马尔·拉梅什