DAY21: NPM模块管理工具

NPM是Node Package Manager的缩写,中文直接翻的话就是Node包管理工具,
比较专业则称为模块管理工具,是用JavaScript所编写的软件管理系统。

起源:

起初Isaac Z. Schlueter这位先生意识到在模块这个区块管理的很糟糕,
并在2009年发布NPM。
其中Isaac Z. Schlueter借鉴了PHP、PERL等模块管理工具,
经过迭代,并与Nodjs一拍即合,发展成在Nodejs举足轻重的位置。

与Nodejs关系:

到Nodjs官网可以看到NPM是他们默认的模块管理工具,
所以当我们直接安装Nodjs时就会连NPM一起安装下载
(Nodjs下载可以参考: DAY3: node.js安装环境)

https://ithelp.ithome.com.tw/upload/images/20211002/20140244W1OXxCHRip.jpg

NPM中包含两个重要的功能:

  • 模块仓库(Registry):
    上面有各式各样的模块,可能存在安全与不安全的模块,
    是因为用户可以通过NPM把自身设计的模块放上去。
    而需要使用时,可以通过NPM指令下载安装指定的模块名称,
    里面都包含一个JSON的格式元文件。
    通常Nodejs的模块主要有内置模块,像是例子中很常用的fs、Http模块,
var fs=require("fs");
var http=require("http");

可以直接透过require导入或是被调用。
另外还有NPM Registry第三方模块,当在内置模块找不到想要的模块时,
就可以透过模块仓库查询并下载安装。

  • CLI命令列介面(Command Line Interface):
    可以文字透过CLI命令列介面来下载、卸载、更新第三方模块,
    没有花俏的图形按钮介面,就很单纯的黑底白字,
    像是我们在Window PowerShell的介面一样。
    确定npm CLI是否安装,在终端机输入 npm – v

https://ithelp.ithome.com.tw/upload/images/20211002/20140244GZ5Wf3E7WT.png

我安装的版本为 6.14.14。
若要安装第三方模块,比如说express在NPM官网可以看到下载数量非常惊人,
那就来安装看看express块。
首先要先初始化所在目录,输入 npm init

https://ithelp.ithome.com.tw/upload/images/20211002/20140244fu6nMPA90C.png

在初始化目录的过程中会问一些问题,最後回答yes後,
会产生一个文件在所在的目录中名为 package.json
https://ithelp.ithome.com.tw/upload/images/20211002/20140244mGG3C33EMV.png
https://ithelp.ithome.com.tw/upload/images/20211002/20140244njSX9xeonR.png

文件内容是储存一些项目相关的讯息。
开始安装express模块,输入 npm i express (= npm install 模块名)

https://ithelp.ithome.com.tw/upload/images/20211002/20140244FTEF5j8sm7.png

安装成功後,在package.json档案中也会出现一组讯息

https://ithelp.ithome.com.tw/upload/images/20211002/20140244aCnFKlYF09.png

代表现在需要依赖第三方模块叫做express。
由此可知日後不管下载哪一个第三方模组,都会出现在这里!
接下来就可以直接用require来导入express来使用!

var express=require("express");

卸载模块时,输入npm uninatall express
https://ithelp.ithome.com.tw/upload/images/20211002/20140244vpAHocOgig.png


<<:  Day19 Vue基本教学(一)

>>:  DAY 18 制作 Nav Bar - dropdown

依赖反转原则 Dependency Inversion Principle

在上一篇文章当中我们谈到开放封闭原则,这里我们要来谈谈依赖反转原则 Dependency inver...

Day 20:如何撰写测试

今天就书中描述与我个人的开发经验,来谈谈该如何撰写测试吧。有时候我们可能会遇到,软件在开发之初并没有...

Day28 订单 -- 定期定额

在好几年前串接金流的时候,还有没定期定额的选项, 记得那时接触的是团体的捐款网站要串接定期定额的功能...

Day27条件选择器switch(JavaScript)

switch 主要功能是依据不同的条件去执行其动作 他基本型态会长这样 switch (expres...

Day05 - 【入门篇】什麽是Keycloak

本系列文之後也会置於个人网站 终於要来好好介绍一下甚麽是Keycloak了~ 收先先来看一下Key...