require non-empty basename for live-reload targets [ci skip]