yarn package management

Post on 15-Apr-2017

154 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

I A M N O T A N E X P E R T

I N Y A R N

J U S T A J A V A S C R I P T D E V E L O P E R

NPM IS AMAZING

NPM IS HUGE

RANGE SPECIFIERS

PROBLEM

^1.2.3 ~1.2.3

NOT DETERMINISTIC~node_modules

RANGE SPECIFIERS

PROBLEM

^1.2.3 ~1.2.3

NOT DETERMINISTIC~node_modules

NPM IS SLOW

PROBLEM

SEQUENTIALDOWNLOADING

OFFLINE DEVELOPMENT

PROBLEM

NPM DOESNTWORK OFFLINE

CI BUNDLING

OFFLINE

NODE_MODULESMUST MATCH

PACKAGE.JSON

PREPUBLISH?

NPWTFM?

RANGE SPECIFIERS

PROBLEM

^1.2.3 ~1.2.3

NOT DETERMINISTIC~node_modules

FIXED VERSIONS?

RANGE SPECIFIERS PROBLEM

SUB DEPENDENCIESNOT FIXED

FIXED VERSIONS?

RANGE SPECIFIERS PROBLEM

SUB DEPENDENCIESNOT FIXED

NPM SHRINKWRAP?

RANGE SPECIFIERS PROBLEM

REQUIRESEXPLICIT SYNC

COMMIT MODULES?

RANGE SPECIFIERS PROBLEM

100S OF FILES IN PRMUST DEVELOP VIRTUALIZATION

HELPS WITH DEV - PRODUCTION INTEGRITY

OFFLINE DEVELOPMENT

PROBLEM

NPM DOESNTWORK OFFLINE

NPM CACHE-MIN?

OFFLINE DEVELOPMENT PROBLEM

NPM --CACHE-MIN INFINITY INSTALL LEFT-PAD- STILL NEEDS CONNECTIVITY

- FRAGILE

LOCAL REGISTRIES?

OFFLINE DEVELOPMENT PROBLEM

- SINOPEA- LOCAL-NPM- NPM_LAZY

LOCAL REGISTRIES?

OFFLINE DEVELOPMENT PROBLEM

- SINOPEA- LOCAL-NPM- NPM_LAZY

GOOD PRACTICE IS OPTIN

PROBLEM

SHRINKWRAP SAVING TO MANIFEST

TEAM CONVENTIONS?

GOOD PRACTICES ARE OPT IN PROBLEM

HARD TO ENSURE PEOPLE FOLLOW

PRECOMMIT HOOKS?

GOOD PRACTICES ARE OPT IN PROBLEM

CAN BE DISABLED

CUSTOM SCRIPTS?

GOOD PRACTICES ARE OPT IN PROBLEM

- GO AGAINST CONVENTION- GIT WORKFLOW ISSUES

- NEW THING- DEVELOPERS RESPONSIBILITY

NPM IS STILL SLOW

HOWEVER...

BUT LOCAL REGISTRIES AS CACHES HELP

SHARING NODE_MODULES?

BUNDLING CIPROBLEM

- GLOBAL NODE_MODULES FOLDER- PACKAGE.JSON HASH

- DOCKER CONTAINER CHANGES- NON-DETERMINISM CAUSES ISSUES

PREPUBLISH

NPWTFM

- DEAL WITH IT- IN-PUBLISH

SAM BOYER

PACKAGE MANAGERFOR GOLANG

GLIDE

"SOFTWARE IS TERRIBLE"

SAM BOYER

"PEOPLE ARE TERRIBLE"

SAM BOYER

"THERE ARE TOO MANY DIFFERENTSCENARIOS"

SAM BOYER

"NOTHING WILL REALLYWORK FOR SURE"

SAM BOYER

"IT’S PROVABLE THATNOTHING WILL REALLY

WORK FOR SURE"

SAM BOYER

"OUR LIVES AREMEANINGLESS PERTURBATIONS

IN A SWIRLING VORTEXOF CHAOS AND ENTROPY"

SAM BOYER

NEW NPM CLIENT

DOUBLE THE SPEEDCompared with npm 3

OFFLINE MIRRORecho 'yarn-offline-mirror "./my-cache"' > .yarnrc

rm -rf yarn.lock && yarn

DETERMINISTICnode_modules same everytime

YARN.LOCKSimilar to npm-shrinkwrap

AUTOMATIC MANIFEST SYNC

yarn add left-padyarn add mocha --dev

PACKAGE VALIDATIONPackage integrity validated

by checksum

WORKFLOWInstall and setup a project

DEMO

SPEED DEMO

OFFLINE MIRRORInstall dependencies without

an internet connection

DEMO

RUN SCRIPTSScripts are run based on

pattern matching

DEMO

YARN IS STILL WIP

MACOS SEEMS SOLIDPOS. ISSUES w/PRIVATE MODULES IN DOCKER

STILL UNPROVEN FOR US IN CI(WERE WORKING ON IT)

HMM...

YARN HAS QUIRKS

OFFLINE CACHE .yarnrcGITHUB URLS

STILL HAS PREPUBLISH

HMM...

YARN > NPM

YARN IS LONGER TO TYPE THAN NPM

NITPICK...

HTTP://YARNPKG.COM

THANKYOU

http://yarnpkg.com/en/docshttps://yarnpkg.com/blog/2016/11/24/offline-mirrorhttps://yarnpkg.com/en/docs/migrating-from-npmhttps://www.youtube.com/watch?v=Mou6JzfZVf0http://github.com/ryardley/yarn-talk

contact@rudiyardley.comgithub.com/ryardleytwitter.com/rudiyardley

YARN

top related