1. 首页
  2. >
  3. 前端开发
  4. >
  5. Javascript

NodeJS包管理器-NPM基础

NodeJS包管理器-NPM基础

NPM是什么

全称 node package manger,是Node的开放式模块登记和管理系统。

官网:https://www.npmjs.cn/

仓库:https://www.npmjs.com/package/repository

中文参考:https://www.axihe.com/api/npm/api/api.html

NPM能干什么

社区的力量,程序员自古以来就有社区文化。加入社区最大的好处之一是,你可以使用别人贡献的代码,你也可以贡献代码给别人用。

社区的意思是:拥有共同职业或兴趣的人们,自发组织在一起,通过分享信息和资源进行合作。虚拟社区的参与者经常会在线讨论相关话题,或访问某些网站。

在 GitHub 还没有兴起的年代,前端是通过网址来共享代码。现在依然没有完全废弃

NPM最核心的任务就是共享代码

NPM 的思路大概是这样的:

  • 买个服务器作为代码仓库(registry),在里面放所有需要被共享的代码
  • 发邮件通知 jQuery、Bootstrap、Underscore 作者使用 npm publish 把代码提交到 registry 上
  • 社区里的其他人如果想使用这些代码,就把 jquery、bootstrap 和 underscore 写到 package.json 里,执行对应的命令下载这些代码
  • 下载完的代码出现在 node_modules 目录里,可以随意使用了。这些可以被使用的代码被叫做「包」(package)

NPM基本使用

由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入 "npm -v" 来测试是否成功安装。

npm init

创建一个 package.json 文件

命令语法

npm init [--force|-f|--yes|-y|--scope]

npm init <@scope> (same as `npx <@scope>/create`)

npm init [<@scope>/]<name> (same as `npx [<@scope>/]create-<name>`)

目录说明

./demo1/

|-- node_modules# npm 包存放的文件夹

|--.npmrc # npm 配置文件

|-- package-lock.json # npm 锁定文件的说明

|-- package.json # npm 的 package

.npmrc

npm 从命令行,环境变量和 npmrc 文件获取其配置设置

npm config 命令可用于更新和编辑用户和全局 .npmrc 文件的内容

.npmrc 当文件中的行以;或#字符开头时,它们被解释为注释。.npmrc 文件由 npm/ini 解析,npm/ini 指定此注释语法。


存放位置

  • 每个项目的配置文件(/path/to/my/project/.npmrc):存在于项目根目录下的.npmrc配置文件
  • 每个用户的配置文件(~/.npmrc): $HOME/.npmrc存在于用户根目录下
  • 全局配置文件( $PREFIX/etc/npmrc ):存在于Node全局的.npmrc文件。如windows下$PREFIX/etc/.npmrc
  • npm 内置配置文件( /path/to/npm/npmrc ):这是一个不可更改的"内置"配置文件,npm 在更新之间保持一致。

配置文件内容

; 指定默认的编辑器

editor=C:\Tools\SublimeTextBuild3207x64\sublime_text.exe

; 模块库

registry=https://registry.npm.taobao.org

; 模块安装地址

prefix=C:\nodejs-moudules\moudules

; 临时文件地址

tmp=C:\nodejs-moudules\tmp

; 缓存地址

cache=C:\nodejs-moudules\npm_cache

npm config

该命令可用于查看、编辑用户和全局 npmrc 文件的内容。

命令语法

npm config set <key> <value> [-g|--global]

npm config get <key>

npm config delete <key>

npm config list [-l] [--json]

npm config edit

npm get <key>

npm set <key> <value> [-g|--global]


安装模块

命令语法

npm install (with no args, in package dir)

npm install [<@scope>/]<name>

npm install [<@scope>/]<name>@<tag>

npm install [<@scope>/]<name>@<version>

npm install [<@scope>/]<name>@<version range>

npm install <git-host>:<git-user>/<repo-name>

npm install <git repo url>

npm install <tarball file>

npm install <tarball url>

npm install <folder>

默认将所有指定的软件包保存到其中。此外,您可以使用一些其他标志来控制在何处以及如何保存它们:

  • -D, –save-dev:包将出现在您的中 devDependencies。

局部安装

  • 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  • 可以通过 require() 来引入局部安装的包。

全局安装

  • 将安装包放在 /usr/local 下或者你 node 的安装目录。
  • 可以直接在命令行里使用。

npm install express -g

卸载模块

我们可以使用以下命令来卸载 Node.js 模块。

npm uninstall express

npm cache clean

更新模块

我们可以使用以下命令更新模块:

npm update express