Skip to content

nishants/npm-cli-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Creating and publishing cli apps with npm

  • Create project

    npm init
    
  • Create exectuable script

    mkdir bin
    
  • Create file cli.js

    module.exports = {  
    	run : (args) => {    
    		console.log("running command with ", args);  
    	}
    };
  • Create file bin/npm-cli-app.js

    #!/usr/bin/env node
    
    require('../cli').run(process.argv);
  • Run and check the script file

    node bin/npm-cli-app.js hello
    # running command with  [
    #   '/Users/me/.nvm/versions/node/v14.5.0/bin/node',
    #   '/Users/me/projects/npm-cli-app/bin/npm-cli-app.js',
    #   'hello'
    # ]
  • Update pakcage.json to include the bin file :

    "bin": {
    	"npm-cli-app": "bin/npm-cli-app.js"
    },
  • Install project locally for testing

    npm link
    # /Users/me/.nvm/versions/node/v14.5.0/bin/npm-cli-app -> /Users/me/.nvm/versions/node/v14.5.0/lib/node_modules/npm-cli-app/bin/npm-cli-app.js
    
    # /Users/me/.nvm/versions/node/v14.5.0/lib/node_modules/npm-cli-app -> /Users/me/projects/npm-cli-app
  • Now run and test your command :

    npm-cli-app hello
    
    # running command with  [
    #   '/Users/dawn/.nvm/versions/node/v14.5.0/bin/node',
    #   '/Users/dawn/.nvm/versions/node/v14.5.0/bin/npm-cli-app',
    #   'hello'
    # ]
  • Create file src/app.js

    module.exports = {
    	run : (parameters) => {
    		console.log("running app with : ", parameters)
    	}
    };
  • Update cli.js to run app and pass only user provided data

    const app = require('./src/app');
    
    module.exports = {  
    	run : (args) => {    
    		app.run(args.slice(2));
    	}
    };
  • Now run out comamnd again

    npm-cli-app hello
    
    # running app with :  [ 'hello' ]
  • publish to npm

    npm login 
    # Enter you username/password
    
    npm publish
  • Now on any other machine check the pubslihe package by running

    npx npm-cli-app hello
    
  • If you do not have another machin to test, use docker to test instead :

    docker run node:14 npx npm-cli-app hello
    

About

Creating an installable cli app with npm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published