npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

grunt-go-reload

v0.1.2

Published

Build and run a single instance of a go program.

Downloads

3

Readme

grunt-go-reload Build Status

Build and run a single instance of a go program.

Use this plugin in conjunction with grunt-contrib-watch to reload your go app automatically on every code change.

Alternatively, use this plugin to build and run your go app forever using the go_reload task.

This plugin is built on Grunt 1.0.1 but should work on earlier versions.

Getting Started

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-go-reload --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks("grunt-go-reload");

The "go_reload" task

Overview

In your project's Gruntfile, add a section named go_reload to the data object passed into grunt.initConfig().

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000
    }
  },
});

Options

options.name

Type: String Default value: None

A string value used in the go build compilation step to name the output executable (using the go build -o option). See go build -h for more details.

options.port

Type: Number Default value: 3000

A number assigned to the PORT environment variable when executing your go app. Access this value in go using os.Getenv("PORT").

options.background

Type: Boolean Default value: false

Use false to make go_reload block Grunt in order to keep it running. Use true if configuring with grunt-contrib-watch to reload your go app automatically on every code change. See Watch Configuration for specifics.

options.env

Type: Object Default value: undefined

These values will be passed as environment variables when executing your go app. Access these value in go using os.Getenv(...). For example:

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000,
      env: {
        GO_ENV: "development",
        API_KEY: "0123456789"
      }
    }
  },
});

Usage Examples

Basic Configuration

Use this configuration to have Grunt build and run your go app forever.

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000
    }
  },
});

grunt.loadNpmTasks("grunt-go-reload");

grunt.registerTask("default", ["go_reload"]);

Watch Configuration

Use this configuration to have Grunt reload your go app on every code change using grunt-contrib-watch.

grunt.initConfig({
  go_reload: {
    app: {
      name: "sample-go-app",
      port: 3000,
      background: true
    }
  },
  watch: {
    options: {
      atBegin: true
    },
    go: {
      files: ["**/*.go"],
      tasks: ["go_reload"]
    }
  }
});

grunt.loadNpmTasks("grunt-go-reload");
grunt.loadNpmTasks("grunt-contrib-watch");

grunt.registerTask("default", ["watch"]);

Contributing

This plugin was created to service a basic go web app so pull requests / issues to make this plugin work with your project are welcome!

Release History