使用 brew 全局安装 npm 包
Install npm package globally using brew
我想发布一个使用 NodeJs 开发的 CLI 工具,我正在尝试使用 yum 而不是使用 npm 全局安装它,因为我不希望用户要求安装 Nodejs 和 npm。不知道该怎么做?
替换
npm install -g my-cli-tool
与
brew install my-cli-tool
因此用户不必安装 NodeJs 和 Npm。有点需要将整个 Nodejs 运行环境+我的包打包成一个 Brew 包。
你需要自己写一个自制的公式。我会根据您的需要提供一些有用的资源。
阅读Node for Formula Author Documentation,特别是最后的公式示例。
列出使用 node
作为依赖项的相似公式。使用这些现有的公式作为参考。
brew uses node
# check one of them, like this "cash-cli"
brew edit cash-cli
这是一个例子
require "language/node"
class CashCli < Formula
desc "Convert currency rates directly from your terminal"
homepage "https://github.com/xxczaki/cash-cli"
url "https://registry.npmjs.org/cash-cli/-/cash-cli-4.0.0.tgz"
sha256 "c8b1d437305bc4c492cb9b85bb1b91edb5cc74fa91bd007616746c6258dae6c5"
bottle do
cellar :any_skip_relocation
sha256 "c78661062dbc6e913d0f69f45af80af1f9967e50fe1eca86a95337ab16fac7ea" => :mojave
sha256 "6b8215de6daf01c61e48bd46465be7ad9b400d4ec5ab514f5167bee787d6fa48" => :high_sierra
sha256 "5941317cef9b92097c4b45df1e94b7b8d08e708d9813508ab3f42f55068541d3" => :sierra
end
depends_on "node"
def install
system "npm", "install", *Language::Node.std_npm_install_args(libexec)
bin.install_symlink Dir["#{libexec}/bin/*"]
end
test do
assert_match "Conversion of USD 100", shell_output("#{bin}/cash 100 USD PLN CHF")
end
end
应在自定义公式中删除 bottle
部分。
最后,保持一个水龙头并从那个水龙头安装您的配方奶粉。
我想发布一个使用 NodeJs 开发的 CLI 工具,我正在尝试使用 yum 而不是使用 npm 全局安装它,因为我不希望用户要求安装 Nodejs 和 npm。不知道该怎么做?
替换
npm install -g my-cli-tool
与
brew install my-cli-tool
因此用户不必安装 NodeJs 和 Npm。有点需要将整个 Nodejs 运行环境+我的包打包成一个 Brew 包。
你需要自己写一个自制的公式。我会根据您的需要提供一些有用的资源。
阅读Node for Formula Author Documentation,特别是最后的公式示例。
列出使用
node
作为依赖项的相似公式。使用这些现有的公式作为参考。brew uses node # check one of them, like this "cash-cli" brew edit cash-cli
这是一个例子
require "language/node"
class CashCli < Formula
desc "Convert currency rates directly from your terminal"
homepage "https://github.com/xxczaki/cash-cli"
url "https://registry.npmjs.org/cash-cli/-/cash-cli-4.0.0.tgz"
sha256 "c8b1d437305bc4c492cb9b85bb1b91edb5cc74fa91bd007616746c6258dae6c5"
bottle do
cellar :any_skip_relocation
sha256 "c78661062dbc6e913d0f69f45af80af1f9967e50fe1eca86a95337ab16fac7ea" => :mojave
sha256 "6b8215de6daf01c61e48bd46465be7ad9b400d4ec5ab514f5167bee787d6fa48" => :high_sierra
sha256 "5941317cef9b92097c4b45df1e94b7b8d08e708d9813508ab3f42f55068541d3" => :sierra
end
depends_on "node"
def install
system "npm", "install", *Language::Node.std_npm_install_args(libexec)
bin.install_symlink Dir["#{libexec}/bin/*"]
end
test do
assert_match "Conversion of USD 100", shell_output("#{bin}/cash 100 USD PLN CHF")
end
end
应在自定义公式中删除 bottle
部分。
最后,保持一个水龙头并从那个水龙头安装您的配方奶粉。