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

nik

v1.1.0

Published

Create a new package based on an existing one

Downloads

13

Readme

nik

Create a new package based on an existing one

Nik (as in "nick") lets you quickly start a new project based on an existing Node package. Host your project templates on npmjs.org or GitHub and you can set up a new project in a snap. In an empty directory:

nik some-app-template

If you want to create a new directory for the new project, use the --directory or -d option (see nik --help for usage).

nik some-app-template --directory my-app

If you want to start a project based on a specific release of a package, use the nik <pkg>@<version> syntax:

nik [email protected]

The examples above use Node package names from the npm registry. You can also use nik to create a new project from any Node package on GitHub with nik <github username>/<github project>:

nik some-user/some-package

With nik, you can bootstrap a project from a npm hosted package (with or without a version), a local package, a tarball URL, or any GitHub hosted Node package. Any of the following forms will work:

nik <pkg>
nik <pkg>@<tag>
nik <pkg>@<version>
nik <pkg>@<version range>
nik <folder>
nik <tarball file>
nik <tarball url>
nik <git:// url>
nik <github username>/<github project>

Get it

Install nik globally with the following:

npm install -g --production nik

Note that nik only works with Node 7 and up.

Use it

Create a new directory for your new package:

mkdir foo

Now change into that directory, and nik a package to start with:

cd foo
nik bar

You'll be prompted for a few questions (similar to npm init). When you're done, you'll have a new module ready to be pushed up to GitHub or published anywhere else.

Credit where credit is due

The point of nik is not to use someone else's work without permission or proper attribution. Make sure you read the license of the package you're starting with (the same license is applied to your package by default). And give proper credit to the original author.

Motivation

The primary motivation of nik is to make it easy to start a new project with some existing scaffolding. Think of it as Yeoman-extra-light or npm init on steroids. The idea is that people will host templates or project scaffolding on on npmjs.org or GitHub, and you can use nik to bootstrap your project.

Please submit an issue if you encounter any trouble. Contributions or suggestions for improvements welcome!

Build Status