NPM教程(二)

158 阅读4分钟

我正在参与掘金创作者训练营第5期,点击了解活动详情

在前文《NPM教程(一)》中,已经讲解了npm是什么、npm能干什么以及npm如何安装等方面的知识内容。那么接下来,将带着大家对npm中的package基本使用教程进行一一的讲解。

package介绍

当你在开发一个项目的时候,肯定是需要安装各种各样的依赖包,那么这些包该如何统一管理呢?因此,npm提供了一个叫做package.json的文件。

该文件作为一个描述性文件,描述你项目依赖哪些包;同时允许使用语义版本规则,指明你项目依赖的版本;本;最后让你的构建可以更好的与其他人共享。

目前,package的范围主要分为scoped和unscoped两种,其分别对应的可见性以及权限如下表所示:

范围访问权限可以查看和下载可以写(可以发布)
组织(scoped)私人的组织中对包具有读取权限的团队成员组织中对包具有读写权限的团队成员
组织(scoped)公开的每个人组织中对包具有读写权限的团队成员
用户(scoped)私人的包所有者和已被授予对包的读取权限的用户包所有者和被授予对包的读写权限的用户
用户(scoped)公开的每个人包所有者和被授予对包的读写权限的用户
unscoped公开的每个人包所有者和被授予对包的读写权限的用户

注意:只有用户帐户可以创建和管理无范围的包。组织只能管理范围包。

  • 无范围的包总是公开的。
  • 私有包总是有范围的。
  • 范围包默认是私有的;您必须在发布时传递命令行标志才能将它们公开

package创建

前面已经讲述了package文件主要有scoped和unscoped两种形式,那么接下来将分别进行这两种包的创建。

unscoped public package

  1. 在命令行界面,创建一个用于存放package的文件夹 image.png

  2. 切换至该文件夹目录下 image.png

  3. 运行npm init命令,输入配置信息 image.png

  4. unscoped public package.json文件创建成功(name为package-file) image.png

scoped public package

  1. 在命令行界面,创建一个用于存放package的文件夹 image.png

  2. 切换至该文件夹目录下 image.png

  3. 运行npm init --scope=gt命令,输入配置信息 image.png

  4. scoped public package.json文件创建成功(name为@gt/scoped-package) image.png

由于有范围的私有包需要组织账户才能创建,因此这里就不演示了,有兴趣的可以查看官方文件“Creating and publishing private packages”。

package字段

当package.json文件创建完成后,可以看到其中存在一些字段内容。那么接下来将着重对package所拥有的字段的含义以及功能进行讲解。

  "name": "package-file",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
  • name:该"name"字段包含您的包的名称,并且必须是小写字母和一个单词,并且可以包含连字符和下划线。
  • version:该"version"字段包含您的包的版本,在文件中必须存在,同时x.x.x版本需要遵循语义版本控制,并且在每次发布的时候,该字段都需要进行修改。
  • description:该"description"字段包含您的包的具体描述,便于用户搜寻到。
  • keywords:该"version"字段包含您的包的关键词,便于用户搜寻到。
  • homepage:该"homepage"字段包含您的包的官网地址。
  • license:该"license"字段包含您的包所采用的协议,便于用户明晰操作权限。
  • author:该"author"字段包含您的包的作者。
  • contributors:该"contributors"字段包含您的包的主要贡献者。
  • files:该"files"字段包含您的包作为依赖项安装时要包含的文件,即允许被上传的文件。
  • main:该"main"字段包含您的包的入口文件路径,在你通过import或require引用该npm包时就是引入的该路径的文件。
  • browser:该"browser"字段包含您的包在 browser 环境下的入口文件。
  • bin:该"bin"字段包含您的包的可执行文件,并将其加入到path变量中。
  • scripts:该"scripts"字段包含您的包的脚本命令。
  • dependencies:该"dependencies"字段包含您的包在生产环境中所依赖的包。
  • devDependencies:该"devDependencies"字段包含您的包在本地环境中所依赖的包。
  • private:该"private"字段包含您的包的是否运行被发布,可以防止意外发布私有库的风险。

总结

通过上文对package的范围、创建方式以及字段的讲解,我相信大家对npm中package的知识有了更加深入的了解,同时也能根据自己的需求进行很好的使用。

那么接下来的文章,我们将对npm的版本控制、版本锁定以及npm脚本相关的知识进行进一步的讲解。