npm与yarn详解

199 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

本文主要内容:总结了npm与yarn的相关知识与使用技巧

npm

npm(全称 Node Package Manager,即“node包管理器”)是Node.js预设的、用JavaScript编写的软体套件管理系统。

以上是选自维基百科的对新手来说很不友好的定义

所以接下来我打算从npm存在的意义以及npm的主要使用方法两个方面来谈一谈

为什么要有npm

没有npm

在新手写一个只有最简单的html和javascript的网页时,自然是不会用到npm的,但是当项目开始逐渐变大,就会碰到一些前辈们已经写过的功能需求,这个时候就会需要使用已经写好的轮子。

最容易理解的方式,就是向前辈要来他们的代码然后复制粘贴到自己的代码里

当然在互联网的世界里,有着更先进的方式,以moment.js为例:

image.png 暂时不看右边先进的install方式,在没有npm的情况下,最普遍的思维方式就是download代码,然后引入,这样看来似乎也不是很困难

然而,这存在更新的问题,这些库都是有大佬专门维护的,每次更新都要重新下载导入。如果只有一个库还算能够接受,但是大型的项目依赖的库的数量是难以手动维护的,而npm就很好地解决了这个问题。

有了npm

首先是你可以较为轻松地实现库的安装,如安装moment.js就可以使用如下命令

npm install moment

这个命令会在你的执行目录下的node_modules文件夹中安装moment,并且会在package.json文件中添加如下类似的配置(主要是版本号可能不同)

  "dependencies": {      
      "moment": "^2.29.4"    
  } 

这里便是package.json文件配置这个项目需要的依赖文件的地方

于是就能引出npm另一个重要的功能,即可以根据package.json文件中dependenciesdevDependecies中的配置,利用如下命令来实现依赖文件的安装

npm install  // or  npm i

这个在我实践中使用到的情景是:将本地写好的网站搭载到服务器上时,可以只上传除了node_modules文件夹以外的文件,然后再远程执行命令安装依赖,这样便能使网站顺利运行

如何使用npm

首先,既然npm是Node Package Manager,那么最先需要下载的便是node.js,下载完成后便能够使用npm在命令行界面来进行操作

基础命令在上文已经做出了一些介绍,下面就进行余下的补充:

npm init

这是在进行其他npm操作前需要最先执行的初始化操作,构建了项目的支架

它往往会展现如下的内容

  • The project's name,
  • The project's initial version,
  • The project's description,
  • The project's entry point (meaning the project's main file),
  • The project's test command (to trigger testing with something like Standard)
  • The project's git repository (where the project source can be found)
  • The project's keywords (basically, tags related to the project)
  • The project's license (this defaults to ISC - most open-source Node.js projects are

而上述所有的输入,你可以直接按enter表示默认。当完成了初始化,就可以看到package.json文件了

npm install <module>

这是安装库文件的命令,可以简写为npm i

上文已经提到这条命令会在package.json文件中添加一条dependencies的配置,然而实际上添加的位置由install后的--save决定,而--save-dev则会添加一条devDependencies的配置

yarn

在了解了npm后,我们可以简单地将yarn理解为更快捷、更安全、更可靠的npm

首先自然是安装npm install --global yarn

而其他的语法与npm相似:

npmyarn
npm inityarn init
npm install <module>yarn add [package]
npm installyarn or yarn install