带你深入了解NPM——NPM初学者指南

发布时间:2020-09-23 23:30:05 作者:powertoolsteam
来源:网络 阅读:278

前段时间,我们邀请了我们“城内”(葡萄城)资深开发工程师刘涛为大家分享了一次干货满满的关于Electron线上公开课,在课程过程中有不少同学对于NPM的概念和用法有一些疑问,所以这次我们希望通过这篇文章来解答各位同学的问题。另外在介绍的基础上,我们还会适当的深入介绍下,如何在npm上发布第一个属于自己的包。那么,让我们马上开始吧!

得益于Node.js的模块化生态系统,我们基本上可以把NPM认为是任何Node项目的基础组成的一部分。但实际上,我们甚至可以说NPM是Node.js开发人员在开发者社区中最重要的工具之一。毕竟,他们每天都使用它来管理他们的项目使用的包。

但是,除了用它安装软件包外,大家是否真正深入了解过NPM呢?因此,我将尝试介绍该工具的基础知识,让您更深入地了解并使用它,而不是仅仅了解npm install而已。

 

包管理

我们都知道你可以使用NPM安装软件包,但究竟是什么意思呢?包基本上是包含您需要的代码的文件夹,您可以在本地或全局安装它。

本地安装

本地安装意味着您实际上将文件下载到项目的文件夹中。在其中,您将找到一个您未创建的目录,称为“node_modules”。由于这种简单的机制,这个本地文件夹可能会变得非常大。

那么究竟这个文件夹有多大?一张图来为你形容:

 带你深入了解NPM——NPM初学者指南

 

 

其实这只是个玩笑,通常你可以忽略该文件夹,让Node.js为你处理它。

要执行本地安装,您只需:

$ npm install [package-name]

您可以添加—save后缀,Node会把包名称和版本保存到您的package.json 文件中。请记住,这一点很重要(甚至至关重要),因为当你作为团队中的一份子在工作时,你不会分发,也不会将node_modules文件夹添加到版本控制系统(无论是GIT,SVN还是你正在使用的任何版本管理系统),而只需简单地分享package.json文件,然后让你的队友执行$npm install命令,即可完成包的安装和更新。这比共享整个文件夹更快,更容易维护,整个文件夹可以增长到包含千兆字节的数据。

以下是一个package.json文件的结构:

{



  "name": "Project name",


  "version": "1.0.0",


  "description": "This is a basic description",


  "main": "index.js",


  "scripts": {


    "test": "echo \"Error: no test specified\" && exit 1"


  },


  "author": "Fernando Doglio",


  "license": "ISC",


  "dependencies": {


    "config": "^3.1.0",


    "express": "^4.17.1",


    "socket.io": "^2.2.0",


    "winston": "^3.2.1"


  }

 }

 

您可能会改变一些,具体取决于您安装的软件包,或者您需要的文件的哪些字段(上面的示例中没有使用的其他许多字段)。

全局安装

您还可以全局安装软件包,这意味着Node.js将能够从您可能需要的任何项目中访问它们。这样做有什么问题吗?全局安装的包不会添加到package.json文件中,那么既然不会添加到package.json中,那么为什么要安装全局安装呢?

使用Node.js和NPM能做的一个很棒的原因之一就是构建人们通常称之为“二进制文件”的东西,它们只是可以全局安装的脚本,因此可以从盒子的任何位置访问。这意味着您可以创建命令行工具并使用NPM来安装它们!

例如:ExpressJS(Node.js最受欢迎的Web框架之一)或mocha(非常流行的测试库)等软件包也附带了可以使用的可执行二进制文件。例如,mocha要求您在全局和本地安装它,以便拥有一个名为“mocha”的CLI工具,并能够在本地项目上运行测试。

全局包在需要添加到PATH环境变量的常规路径中创建符号链接(或快捷方式)。

NPM的经典命令

install命令只是您可以与NPM一起使用的众多命令之一。事实上,抛开近60种不同的命令(是的,就这么多!),我将简要介绍一下,NPM还允许你创建自己的自定义命令,以防止内置命令对你不够用。

以下是最常见的命令列表,取自官方文档:

这些是您可以使用的最常见或最有用的NPM命令,但是仍然有超过10个额外的命令供您查看,因此我建议您将其文档添加为书签,并做一个注释以便返回并仔细检查它!

 

如何发布我自己的包

我要分享关于NPM知识的最后一点是与其他人分享你的工作是多么容易。在上一个列表中,最后一个命令是发布命令,它基本上允许你这样做,但在这里我想给你更多的细节。

准备项目的元数据

NPM的注册表本质上是一个巨大的包搜索引擎,能够同时托管所有内容,因此您不必同时索引它可以在您的工作中获得的每一点元数据,以帮助其他人找到您的模块尽快。

换句话说,请确保您package.json的设置正确。因为这些内容是吸引您(以及其他人)开始研究及分享您的包的主要因素。

通过提供我上面提到的元数据,NPM能够展示这些数据并突出显示它供开发人员查看。以下示例为Winston的包页面:

 带你深入了解NPM——NPM初学者指南

 

 

由于其团队添加了元数据,添加了多少链接以及额外的位和详细信息。

一份优秀的文档

这步是可选的,但如果你的包是一个可供其他开发人员使用的模块的话,那么我建议你最好提供一份优秀的文档,供他人参考。

因为你真的不能指望你的工具“上手简单、易于理解”。NPM

的目的是为其他人提供一套帮助他们解决问题的预置工具。因此,请尽量丰富你的文档,吸引更多人来使用你的工具吧。

正式发布包

编码完成后,将有效的package.json放置到你的目录中并编写尽可能完善的readme.md文件,您就可以发布了。

要执行发布操作,您必须做两件事:

  1. 使用npm CLI 登录您的NPM帐户(如果您已经有了账号)。

  2. 发布您的代码。

也就是只需两步,就能简单的完成发布。登陆:

$ npm login

将提示您输入凭据,一旦您成功登录,您可以再输入:
$ npm publish

请在项目的文件夹中执行此操作,否则第二个命令将失败。

另外,请记住,包的名称将由您的package.json文件中的name属性给出,而不是来自文件夹的名称(通常二者都是相同的,但并这不意味着他俩有什么关系)。因此,如果您遇到重复的名称错误(考虑到NPM中已经有重名的包了),那么您就必须进行更改一个再次发布了。

结论

感谢阅读,我希望到现在为止,你已经了解了NPM的复杂性和美感。它不仅仅是一个安装软件包的简单工具,但如果你花时间检查文档,你可以用它做更多的事情。


推荐阅读:
  1. npm install、npm install --save与npm install -dev区别
  2. npm安装cnpm

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

npm node

上一篇:vue.js引入外部CSS样式和外部JS文件的方法

下一篇:详解Recyclerview item中有EditText使用刷新遇到的坑

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》