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

fs-change

v0.5.1

Published

Monitor changes to specified files or directories, run arbitrary scripts in response.

Downloads

20

Readme

fs-change

latest version published to npm

Monitor files or directories and execute actions in response to changes.

File watchers and triggered actions are specified in a single file.

Watch file format

The location of this file defaults to ~/.fs-change.

Each line has a glob (or simple file) on the left of a colon, and a command on the right.

The command on the right will have the following keywords available:

  • {file}, the fullpath of the matching file (usually just the string to the left of the colon).
  • {basename}, the shortname of {file}, without path or extension.
  • {dirname}, the directory containing {file}.

Example:

/Users/chbrown/work/mailscript/css/site.less: cd {dirname} && lessc -C site.less site.css
/Volumes/sshfs1/app4/css/*.less: cd {dirname} && lessc -C {basename}.less {basename}.css

Configuration

The following environment variables can be used to configure the behavior of the file listener.

  • OSX default: unset

    If set, fs-change will log to the NotificationCenter as well as STDOUT/STDERR.

  • CONFIG default: '~/.fs-change'

    Specify the path to the configuration file specifying the files to watch.

  • DEBUG default: unset

    If set, fs-change will set the log level to DEBUG.

Installation

npm install -g fs-change
fs-change print-launch-agent > ~/Library/LaunchAgents/npmjs.fs-change.plist
launchctl load ~/Library/LaunchAgents/npmjs.fs-change.plist

The generated LaunchAgent will log to ~/Library/Logs/fs-change.log, which you can view in Console.app.

To uninstall:

launchctl unload ~/Library/LaunchAgents/npmjs.fs-change.plist
rm ~/Library/LaunchAgents/npmjs.fs-change.plist

TODO

  • If some file does not exist, the script will continue to try the other files, and should retry any inaccessible file every 60 seconds. I do a lot of development on remote servers, so the files are only accessible when I have sshfs connected, but I don't want to have to run something to tell my LESS compiler that it should retry the filepath in question.
  • Add documentation for macro syntax (& /regex/flags/ => replacement)

License

Copyright 2012-2015 Christopher Brown. MIT Licensed.