1
00:00:01,210 --> 00:00:06,700
We are going to eventually create several different packages to form our overall project, managing

2
00:00:06,700 --> 00:00:09,540
each of these projects manually is going to be a little bit tedious.

3
00:00:09,580 --> 00:00:13,930
So instead, we're going to be making use of a satellite that is going to automatically manage these

4
00:00:13,930 --> 00:00:15,190
different projects for us.

5
00:00:15,760 --> 00:00:19,710
Let's take a look at the Seelie and really understand what it is going to do for us.

6
00:00:20,570 --> 00:00:25,270
OK, so we're going to install onto our local machine a tool called the Lernout Seelie.

7
00:00:25,640 --> 00:00:31,670
This is a tool that we can use for managing a multi package project, which is exactly what you and

8
00:00:31,670 --> 00:00:32,670
I are doing right now.

9
00:00:32,689 --> 00:00:35,170
We are building a multi package project.

10
00:00:35,780 --> 00:00:39,960
I first want to help you understand one of the things that llena is going to do for us.

11
00:00:40,310 --> 00:00:42,150
So let me give you a very quick example.

12
00:00:42,740 --> 00:00:47,870
Now, I do really want to highlight that this entire example I'm about to give you is just one feature

13
00:00:47,870 --> 00:00:48,620
inside of or not.

14
00:00:48,680 --> 00:00:49,010
It is not.

15
00:00:49,010 --> 00:00:53,690
The only thing that learned does by any degree is just one feature that is very handy.

16
00:00:54,520 --> 00:00:58,490
So let's imagine for a second that we are not building this entire book application.

17
00:00:58,520 --> 00:01:01,460
Instead, we are building maybe some kind of printer package.

18
00:01:01,970 --> 00:01:03,920
Our printer package is very simple.

19
00:01:04,250 --> 00:01:10,910
All it does inside of its indexed JS file is import some kind of message package and then console that

20
00:01:10,910 --> 00:01:11,440
message.

21
00:01:11,450 --> 00:01:12,530
And that's pretty much it.

22
00:01:14,010 --> 00:01:19,200
We're going to imagine that this message package is also developed by you and I, so we might first

23
00:01:19,200 --> 00:01:21,440
decide to develop this message package.

24
00:01:21,960 --> 00:01:23,910
We would first develop it on our local machine.

25
00:01:24,150 --> 00:01:29,370
And maybe as a part of developing the package, all we end up doing is exporting some greeting or some

26
00:01:29,370 --> 00:01:32,490
message that we want to eventually be consumed by our printer.

27
00:01:33,030 --> 00:01:37,440
So maybe we end up with just something like export default, hello, or something like that.

28
00:01:38,990 --> 00:01:43,580
After developing this package on our local machine, we would eventually need to publish it off to 9pm

29
00:01:44,000 --> 00:01:45,980
so we might decide to publish it off.

30
00:01:47,800 --> 00:01:53,080
So this will be now a copy of our message package on AMPM registry.

31
00:01:54,280 --> 00:01:56,710
Now, we've got two separate copies of this package.

32
00:01:57,760 --> 00:02:03,370
We would then go back over to our printer, we would do an install message, so we would add in message

33
00:02:03,370 --> 00:02:09,550
to the packages on file, then 9pm on our local machine would go up to the registry and try to download

34
00:02:09,550 --> 00:02:10,570
the message package.

35
00:02:11,080 --> 00:02:15,280
So we would download this package and add it into the node modules directory like so.

36
00:02:16,320 --> 00:02:22,050
Now, whenever we run our Prenter project, whenever we see the important message from message, that

37
00:02:22,050 --> 00:02:26,160
means that we're going to go into our node modules directory, find the current message, which right

38
00:02:26,160 --> 00:02:29,040
now is just hello and print it out.

39
00:02:29,340 --> 00:02:30,090
That's pretty much it.

40
00:02:30,960 --> 00:02:32,730
So this is life as usual.

41
00:02:33,310 --> 00:02:38,430
Let's say really quick and we decide that this hello right here, it's not really the best message that

42
00:02:38,430 --> 00:02:39,840
we could possibly come up with.

43
00:02:40,060 --> 00:02:40,920
Maybe we decide.

44
00:02:41,040 --> 00:02:43,440
Let's try a couple of different variations on this message.

45
00:02:43,950 --> 00:02:49,950
Think about what we would have to do to rerun the printer package with a different message over here.

46
00:02:51,310 --> 00:02:56,740
To do so, we would go to our local copy of the message package on our machine, we would change the

47
00:02:56,740 --> 00:02:59,320
string inside there, change it to something like hi there.

48
00:03:00,600 --> 00:03:05,820
We would then increment the version of this package and then republish it to NPM.

49
00:03:06,500 --> 00:03:11,070
Now we've got two separate versions of our message package, maybe a version one.

50
00:03:12,060 --> 00:03:13,680
And a version to.

51
00:03:15,330 --> 00:03:20,940
If we want our Prenter package to make use of this new version of our message package, we would have

52
00:03:20,940 --> 00:03:24,060
to update the version inside of our packages on file.

53
00:03:24,660 --> 00:03:26,030
So go to 2.0.

54
00:03:27,260 --> 00:03:32,120
We would then have to reinstall this dependency, so we would go and get this new version.

55
00:03:33,860 --> 00:03:39,320
And install it into our node modules directory, and we had to do all that work just for updating this

56
00:03:39,320 --> 00:03:45,020
one single string, if we wanted to change the string again and test it out instead of a printer package,

57
00:03:45,170 --> 00:03:47,690
we would have to go through this entire process yet again.

58
00:03:48,020 --> 00:03:50,800
So, as you can tell, that starts to get very tedious very quickly.

59
00:03:51,620 --> 00:03:56,270
So here is one thing, one thing out of many that Llorona is going to do for us.

60
00:03:56,720 --> 00:04:01,880
Llorona is going to make it very easy for us to consume updates between our different modules on our

61
00:04:01,880 --> 00:04:04,790
local machine as we are developing them very easy.

62
00:04:06,220 --> 00:04:12,130
So rather than going through this entire process of republishing to NPM and then reinstalling into node

63
00:04:12,130 --> 00:04:19,180
modules, instead, Lerner is going to allow us to set up a link from our node modules directory over

64
00:04:19,180 --> 00:04:21,700
to the copy of this package on our local machine.

65
00:04:22,240 --> 00:04:26,740
So this will be a link to message on local machine.

66
00:04:28,450 --> 00:04:33,370
So whenever our application tries to find the message package, let's say, instead of our index dogs

67
00:04:33,370 --> 00:04:39,040
file, rather than finding some kind of preinstalled version of message inside of our known models directory,

68
00:04:39,550 --> 00:04:46,300
we're going to automatically go over to the message on our machine and take whatever the current value

69
00:04:46,300 --> 00:04:52,180
is for that message directly from that file over here so we can change this string high there as much

70
00:04:52,180 --> 00:04:52,690
as we please.

71
00:04:52,700 --> 00:04:55,420
We could change it to this or that or whatever else.

72
00:04:55,570 --> 00:05:00,310
And for every single change, that change will immediately be reflected back over inside of our printer

73
00:05:00,310 --> 00:05:00,880
project.

74
00:05:01,100 --> 00:05:05,770
We do not have to go through this entire laborious cycle of a republish every single time we make a

75
00:05:05,770 --> 00:05:06,240
change.

76
00:05:07,210 --> 00:05:12,250
So, again, this is one feature of llena that's going to be absolutely fantastic for very much simplifying

77
00:05:12,250 --> 00:05:13,780
this multi package development.

78
00:05:14,110 --> 00:05:18,060
I want to repeat now for the fourth time that this is just one thing that Laura does.

79
00:05:18,280 --> 00:05:20,520
We're going to use it for many other features as well.

80
00:05:21,540 --> 00:05:25,230
OK, so now that we've got a better idea of what Lenina is all about, I want to give you a couple more

81
00:05:25,230 --> 00:05:26,870
notes around it in just a moment.

