Run Go commands from Node or CLI, Go env not required
Will download latest binaries locally if Go isn't already in PATH
If you run a command and it fails with "cannot find package..." we'll try to install said package(s). YAYS. 😌
$ npm install --save ngo
$ npm install --global ngo
$ ngo version
# go version go1.8.3 windows/amd64
# to update the `ngo` install of Go (won't update system version)
$ ngo-update
# go version go1.9.4 windows/amd64
# to set the `ngo` install of Go to a specific version (won't update system version)
$ ngo-version 1.12.0
# go version go1.12.0 windows/amd64
# to run a `go get` installed binary use this bs
$ ngo-binary golint test/fixtures/errors.go
# test\fixtures\errors.go:13:5: error var unexp should have name of the form errFoo
returns promise that resolves to execa
style object without the child_process
goodies
const goOpts = {}
const ngo = require('ngo')(goOpts)
const golint = ngo.bin('golint')
ngo('version').then(console.log).catch(console.error)
/* {
stdout: 'go version go1.8.3 windows/amd64',
stderr: '',
code: 0,
failed: false,
killed: false,
signal: null,
cmd: 'C:\\Go\\bin\\go version'
} */
golint('main.go').then(console.log).catch(console.error)
- Purpose: initialize
ngo
- Arguments:
- options [
Object
- optional]- useLocal [
Boolean
false
] - use locally downloaded Go binaries) - update [
Boolean
false
] - update local install to latest - installDeps [
Boolean
true
] - attempt to install missing packages - env [
Object
] - environment vars to set for the Go command - goRoot [
String
] - Go root path (ex./usr/local/go
) - goPath [
String
] - Go workspace path (ex.~/work
)
- useLocal [
- options [
- Returns:
Function
(ngo
) which executes Go commands
- Purpose: - execute
go
commands - Arguments:
- commandArgs [
Array
|String
- required] - argument(s) to call withgo
command - options [
Object
- optional] - same options as
child_process.spawn
- additonal options available same as
execa
- commandArgs [
- Returns:
Promise
which resolves toexeca
styled object
- Purpose: - execute commands on binaries in the
GOBIN
directory - Arguments:
- binary [
String
] - name of binary file to be executed in returned function
- binary [
- Returns:
Function
(identical tongo
, but runs specified binary instead ofgo
)
this is a copy of ngo's process.env
with the Go environment variables added to it
MIT © Andrew Carpenter