npm安装及简单使用

如题所述

第1个回答  2022-07-16

包管理器(Package Manager)

npm 最初它只是被称为 Node Package Manager,用来作为Node.js的包管理器。但是随着其它构建工具(webpack、browserify)的发展,npm已经变成了 "the package manager for JavaScript",它用来安装、管理和分享JavaScript包,同时会自动处理多个包之间的依赖。

新版的nodejs已经集成了npm

Node.js:nodejs分为了 长期支持版 当前版本

Linux中安装nodejs的方法:

对于国内的情形,在使用npm安装JS包之前建议先更改npm的镜像。

配置 npm 的国内镜像站点为: https://registry.npm.taobao.org 。

方法一:在系统的HOME目录新建 .npmrc 文件并添加 registry = https://registry.npm.taobao.org

方法二:你可以使用淘宝定制的 cnpm 命令行工具代替默认的 npm:

npm 的包安装分为本地安装(local)、全局安装(global)两种。

使用下面的命令来查看全局的包安装的位置:

如果你希望具备两者功能(本地安装和全局安装的功能),则需要在两个地方安装它或使用 npm link

npm link的功能是在本地包和全局包之间创建符号链接。我们说过使用全局模式安装的包不能直接通过 require 使用,但通过 npm link 命令可以打破这一限制。

比如我们将 express安装到了全局环境,使用下面的命令可以将其链接到本地环境:

使用 npm link命令还可以将本地的包链接到全局。使用方法是在包目录( package.json 所在目录)中运行 npm link 命令。

如果你的项目不再需要该模块,可以在项目目录内使用npm unlink命令,删除符号链接。

安装信息和它们的依赖

package.json配置内容
当你的项目需要依赖多个包时,推荐使用 package.json。其优点为:

文件中必须包含: name 和 version

两种依赖包:

如果其他人也需要这个项目,只需要把这个 package.json 文件给他,然后进行简单的 npm install 即可。

使用 npm set 命令用来设置环境变量。

也可以用它来为 npm init 设置默认值,这些值会保存在 ~/.npmrc 文件中。

使用 npm config 命令可以达到此目的。

或者手动在 ~/.npmrc 文件中进行配置:

更改目录后记得在系统环境变量 PATH 中添加该路径:

Node.js 的社区开发了多版本管理器,用于在一台机器上维护多个版本的 Node.js 实例,方便按需切换。Node 多版本管理器(Node Version Manager,nvm)是一个通用的叫法,推荐使用nvm安装node,

在发布之前,首先需要让我们的包符合 npm 的规范,npm 有一套以 CommonJS 为基础包规范,但与 CommonJS并不完全一致,其主要差别在于必填字段的不同。通过使用 npm init 可以根据交互问答产生一个符合标准的 package.json。

npm init 运行示例:

该文件就是一个符合 npm 规范的 package.json 文件。这里的 index.js 作为包的接口。

创建帐号:

测试是否取得帐号:

进入官网注册 https://www.npmjs.com/

发布

更新包:修改 version字段,再重新发布

取消发布:

npm scripts 使用指南 - 阮一峰的网络日志

package.json 文件有一个 scripts 字段,可以用于指定脚本命令,供 npm 直接调用。

npm run lint 可以运行脚本中的 lint 命令。 npm run test 可以运行脚本中的 test 命令。

npm run 命令会自动在环境变量 $PATH 添加 node_modules/.bin 目录,所以 scripts 字段里面调用命令时不用加上路径,这就避免了全局安装NPM模块。

start 和 test 属于特殊命令,可以省略 run :

如果仅仅使用 npm run 会列出scripts属性下所有的命令:

npm 模块安装机制简介 - 阮一峰的网络日志

NPM 使用介绍 - 菜鸟教程
npm Documentation
如何卸载使用npm链接安装的软件包?
package.json文件 -- JavaScript 标准参考教程(alpha)
npm模块管理器 -- JavaScript 标准参考教程(alpha)

相似回答
大家正在搜