Fácil implantação para módulos Gemfury para NPM

Um pequeno script útil que fiz, imaginei que outra pessoa poderia precisar. Basicamente, procura os atributos de nome e versão em package.json e, em seguida, constrói seu pacote a partir daí. Eu adicionei fury yankuma vez que frequentemente desenvolvo apenas com a mesma versão de 0.0.1todos os tempos.

Makefile

KEY ?= <YOUR KEY HERE>
NAME_CMD
:= cat package.json | grep -m 1 -o '"name":s*"([^"])*"' | sed 's/"name":[^"]*"(.*)"$$/1/'
VERSION_CMD
:= cat package.json | grep -m 1 -o '"version":s*"([^"])*"' | sed 's/"version":[^"]*"(.*)"$$/1/'

build clean
: PACKAGE_NAME:=$(shell ${NAME_CMD})
build
: PACKAGE_VERSION:=$(shell ${VERSION_CMD})

clean
:
rm
-rf ./node_modules
rm
-rf ./${PACKAGE_NAME}*.tgz

pack
: clean
npm pack


build
: pack
fury yank $
{PACKAGE_NAME} --version=${PACKAGE_VERSION}
curl
-F package=@${PACKAGE_NAME}-${PACKAGE_VERSION}.tgz https://push.fury.io/${KEY}/

.PHONY: clean pack build

Basta digitar make buildpara implantar.

Nota: Tirei um monte de ‘@’ símbolos que prepends alguns dos comandos (como npm, rm, etc.) desde Coderwall foi englobamento-lo e transformá-lo em um literal <a href="">link. Se você quiser silenciar a saída simplesmente digitemake -s build