npm-cli-app

1.0.0 • Public • Published

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

Readme

Keywords

Package Sidebar

Install

npm i npm-cli-app

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

2.81 kB

Total Files

5

Last publish

Collaborators

  • nishants