npm是什么意思

Fanly 问答 2019-07-09 09:56:44 阅读(...)

npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。

npm

npm 完全用 JavaScript 写成,最初由艾萨克·施吕特(Isaac Z. Schlueter)开发。艾萨克表示自己意识到“模块管理很糟糕”的问题,并看到了 PHP 的 PEAR 与 Perl 的 CPAN 等软件的缺点,于是编写了 npm。

说明

npm 会随着 Node.js 自动安装。npm 模块仓库提供了一个名为“registry”的查询服务,用户可通过本地的 npm 命令下载并安装指定模块。此外用户也可以通过 npm 把自己设计的模块分发到 registry 上面。

registry 上面的模块通常采用 CommonJS 格式,而且都包含一个 JSON 格式的元文件。截止到 2016 年 7 月,npm 的 registry 上面已经注册了超过 280,000 个模块。

npm 的模块以“先到先得”的原则注册,各模块作者不会发生混乱。然而一旦有人撤回自己发布的模块,那么不仅会使依赖那个模块的项目出现问题,还会带来安全风险。例如有一个模块叫做“left-pad”,其中只有一个字符串对齐的功能。但是,当作者把它从 registry 里面移除之后,许多模块便无法正确构建。

npm 的 registry 没有审核机制,因此会存在一些低质量、不安全甚至有害的模块,不过 npm 服务器的管理员也可以删除有害模块并阻止不怀好意的用户。

另外也有人为 npm 制作了统计功能,这样可以让开发者了解各模块的使用情况,帮助他们选择合适的模块。

使用

npm 可以管理本地项目的所需模块并自动维护依赖情况,也可以管理全局安装的 JavaScript 工具。

如果一个项目中存在 package.json 文件,那么用户可以直接使用 npm install 命令自动安装和维护当前项目所需的所有模块。在 package.json 文件中,开发者可以指定每个依赖项的版本范围,这样既可以保证模块自动更新,又不会因为所需模块功能大幅变化导致项目出现问题。开发者也可以选择将模块固定在某个版本之上。

1个人收藏头像 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • web3.js

    web3.js是什么

    web3.js是以太坊提供的一个Javascript库,它封装了以太坊的JSON RPC API,提供了一系列与区块链交互的Javascript对象和函数,包括查看网络状态,查看本地账户、查看交易和区块、发送交易、编译/部署智能合约、调用智能合约等。
  • Ant Design Vue

    Ant Design Vue是什么

    Ant Design Vue 是蚂蚁金服 Ant Design 官方唯一推荐的Vue版UI组件库,组件的风格与Ant Design保持同步,组件的html结构和css样式也保持一致。
  • Vue CLI

    Vue CLI是什么

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,是一组用于快速原型设计、简化应用程序搭建和进行高效项目管理的工具,确保了各种构建工具能够基于智能的默认配置即可平稳衔接。
  • uni-app

    uni-app是什么

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
  • ProGet

    ProGet是什么

    ProGet是一个包管理系统。允许用户托管和管理个人或企业范围的包,应用程序和组件。 最初设计为私有NuGet管理器和符号和源服务器。 ProGet扩展支持,增加企业级功能,并且旨在适应DevOps方法。
  • RubyGems

    RubyGems是什么

    RubyGems是Ruby的一个包管理器,提供了分发Ruby程序和库的标准格式“gem”,旨在方便地管理gem安装的工具,以及用于分发gem的服务器。这类似于Python的pip。