nicholasgiggey-resume v1.0.0
Npm Resume
For this exercise we're going to create our own npm package that will print out your resume. the cool thing about this is that anyone can install your code and print out a resume from their console!
Steps
Go ahead and create/change into a new directory called
resumein yourexercisesorsandboxfolder.In order to publish anything to npm, we have to sign up/login with npm.
- You can type
npm whoamito see if npm recognizes you as logged in. (Most likely you are not) - To sign up, you can type
npm loginand choose a name and password. You can also do this through their site npmjs. - Lastly you will also need to verify your email account.
- You can type
Once you've signed up, type in
npm initto create apackage.jsonfile. The only two required fields arenameandversion- The package name should be something like
yourname-resume(You have to pick a name that hasn't been taken - you can search npm's site to see what's available) - Version should follow this format
x.x.x(I recommend putting1.0.0) - For
test_commandandentry_pointyou can just hit enter. - For
license, you can useISC - Fill in the rest fields the best you can. It's ok if you don't know what to put. You can just hit enter, and you can always edit everything later.
- The package name should be something like
Now create 3 files -
index.js,readme.md,info.jsonOn the first line of
index.jsadd...
#! /usr/bin/env nodeThis is a little strange looking, but will allow us to run our code globally as well as from the command line later.
For more info on the Shebang
- Next add...
const fs = require('fs')
fs.readFile(__dirname + '/info.json', 'utf8', function(err, data) {
if (err) {
console.log(err)
} else {
console.log(data)
return data
}
})fs(short for File System) is part of node that we are bringing in to allow us to more easily and reliably read what directory we are in.__dirnameis the directory we are currently inreadFilegives us back the contents of a file. We are passing in 3 arguments...- the file we want to read
- the way to encode that file
- a callback function
- if there is an error getting the file, print the error, else, print out and return the content.
- Next add the following to your package.json file. We're adding in a command that someone who's downloaded your npm file can run to display your resume.
"bin": {
"your-command-here": "./index.js"
},Hard part over!!
- In
info.jsoncreate a json object that's a short resume for yourself.Note: json wants property names and strings to be wrapped in "double quotes"! There are a few other differences as well that separate it from a javascript object You can use my resume as a guide. Yours can be shorter, or sillier, whatever you want! Feel free to add in more properties like interests, soft-skills, pets, etc...
{
"name": "Hammad Malik",
"website": "https://tomatohammado.github.io/",
"linkedin": "https://www.linkedin.com/in/tomatohammado/",
"github": "tomatohammado",
"email": "hammad.malik@generalassemb.ly",
"resume": "https://tomatohammado.github.io/assets/Malik-Hammad-Resume.pdf",
"proficientTechnologies": [
"Javascript",
"React",
"Vue",
"Node",
"Express",
"Mongodb",
"PostgreSQL",
"Python",
"Django",
"Wordpress",
"Drupal"
],
"otherSkills": [
"Unagi",
"Five Finger Fillet",
"Bridge"
]
}Update your
readmeto be a short description about what you've madegit init, add, and commit.
- Then create a new github repository
- Link your local file to the github repository (use
git remote!) - push up your repo!
Ok, finally - run
npm publish- You should be able to see your site and your readme on the npmjs site under your profile.
To update you can just call npm publish again, but you first need to change the version number!
- You should be able to see your site and your readme on the npmjs site under your profile.
To test that everything worked, change into a different directory and run
npm i -g name-of-project. Then runyour-command-here- You can also download eachother's npm resumes and print them out!
🌟BONUS!🌟
- Checkout Color.js to make your resume different colors!
- Use JSON.parse to create your resume as a javascript object you can loop through and customize more!
3 years ago