Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Ins-and-Outs of Publishing a Module to npm
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Steve Kinney
July 30, 2016
160
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The Ins-and-Outs of Publishing a Module to npm
Steve Kinney
July 30, 2016
More Decks by Steve Kinney
See All by Steve Kinney
Enterprise UI, v2
stevekinney
0
190
React_Performance__2022.pdf
stevekinney
0
43
React Performance v2
stevekinney
0
64
Introduction to Testing
stevekinney
0
190
Web Security, Frontend Masters
stevekinney
0
4.2k
Making Music with the Web Audio API, JSConf Colombia 2023
stevekinney
0
130
React and TypeScript, Turing School
stevekinney
0
390
Redux Workshop, 2021-05-05
stevekinney
2
2.2k
TypeScript and React Utility Types
stevekinney
1
230
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Done Done
chrislema
186
16k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
490
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
280
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
480
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Bash Introduction
62gerente
615
220k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
480
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
We Have a Design System, Now What?
morganepeng
55
8.3k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
Transcript
None
I'm Steve. @stevekinney
I'm Steve. @stevekinney
http://turing.io
http://bit.ly/electronjs
Once upon a time…
None
None
None
“How did you get permission to publish a module on
npm?”
>250,000 registered users
~4.5 million estimated users
~84,000 have ever published a module
1.8%
None
Let's make a little module for working with rectangles.
None
None
None
Option A: Scoped modules.
@stevekinney/rectangle
Option B: Get creative.
None
None
None
None
None
None
All you have to do is make yourself a package.json.
“Steve, JSON is tedious. I'm afraid.”
Fair enough.
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Do I seriously have to type my name in every
single time?
Nope.
None
None
None
None
None
None
None
None
None
None
None
But, I really don't want to have to go get
the URL for my Git repository.
Good news! You don't have to, necessarily.
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
“I'm going to be honest with you, Steve. I just
keep hitting enter—can I just skip all of this?”
--yes
None
None
None
None
None
None
None
None
Remember: This code is going to be used by other
people. Write tests, please.
Remember: This code is going to be used by other
people. Write tests, please.
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
What if we wanted to get fancy?
None
None
None
Cool story, but the boss comes in and reminds you
that Node 0.10 is a thing.
None
None
It's totally cool to write a module in your favorite
language. But, you should publish it for the widest possible audience.
None
None
None
None
None
None
You’re never going to remember to do this.
None
None
None
npm run build
You’ll probably forget to do this too.
publish test start install
publish test start install prepublish postinstall preinstall poststart prestart posttest
prestest
None
None
None
npm run sandwich
npm run sandwich presandwich
npm run sandwich presandwich postsandwich
Problem: We want to commit our fancy ES6 code to
git, but we don't need to ship it with our module.
None
None
Don't forget to include a README.
None
None
None
None
None
None
None
None
npm version
1.0.0
1.0.1 npm version patch
1.1.0 npm version minor
2.0.0 npm version major
None
None
None
None
npm publish
None
http://turing.io http://bit.ly/electronjs