安装
Node.js可以通过多种方式安装。
个人推荐的是直接上官网:http://nodejs.cn/download/,选择对应自己电脑版本的安装包,一直点击就可安装了。
npm 包管理器简介
npm 是 Node.js 标准的软件包管理器。
下载
npm 可以管理项目依赖的下载。
安装所有依赖
如果项目具有 package.json 文件,则通过运行:
npm install
它会在 node_modules 文件夹(如果尚不存在则会创建)中安装项目所需的所有东西。
安装单个软件包
也可以通过运行以下命令安装特定的软件包:
npm install <package-name>
通常会在此命令中看到更多标志:
- –save 安装并添加条目到 package.json 文件的 dependencies。
- –save-dev 安装并添加条目到 package.json 文件的 devDependencies。
区别主要是,devDependencies 通常是开发的工具(例如测试的库),而 dependencies 则是与生产环境中的应用程序相关。
更新软件包
通过运行以下命令,更新也变得很容易:
npm update
npm 会检查所有软件包是否有满足版本限制的更新版本。
也可以指定单个软件包进行更新:
npm update <package-name>
版本控制
除了简单的下载外,npm 还可以管理版本控制,因此可以指定软件包的任何特定版本,或者要求版本高于或低于所需版本。
很多时候,一个库仅与另一个库的主版本兼容。
或者,一个库的最新版本中有一个缺陷(仍未修复)引起了问题。
指定库的显式版本还有助于使每个人都使用相同的软件包版本,以便整个团队运行相同的版本,直至 package.json 文件被更新。
在所有这些情况中,版本控制都有很大的帮助,npm 遵循语义版本控制标准。
npm 将软件包安装到哪里
当使用 npm 安装软件包时,可以执行两种安装类型:
- 本地安装
- 全局安装
默认情况下,当输入 npm install 命令时,例如:
npm install lodash
软件包会被安装到当前文件树中的 node_modules 子文件夹下。
在这种情况下,npm 还会在当前文件夹中存在的 package.json 文件的 dependencies 属性中添加 lodash 条目。
使用 -g 标志可以执行全局安装:
npm install -g lodash
全局的位置到底在哪里?
npm root -g 命令会告知其在计算机上的确切位置。
在 macOS 或 Linux 上,此位置可能是 /usr/local/lib/node_modules。 在 Windows 上,可能是 C:\Users\YOU\AppData\Roaming\npm\node_modules。
如何使用或执行 npm 安装的软件包
当使用 npm 将软件包安装到 node_modules 文件夹中或全局安装时,如何在 Node.js 代码中使用它?
假设使用以下命令安装了流行的 JavaScript 实用工具库 lodash:
npm install lodash
这会把软件包安装到本地的 node_modules 文件夹中。
若要在代码中使用它,则只需使用 require 将其导入到程序中:
const _ = require('lodash')
查看 npm 包安装的版本
若要查看所有已安装的 npm 软件包(包括它们的依赖包)的最新版本,则:
npm list
npm list -g 也一样,但适用于全局安装的软件包。
安装 npm 包的旧版本
可以使用 @ 语法来安装 npm 软件包的旧版本:
npm install <package>@<version>
不加版本号默认安装最新版,所以一般学习时都需加上版本号。例如:使用以下命令可以安装 1.2.0 版本:
npm install cowsay@1.2.0
卸载 npm 软件包
若要卸载之前在本地安装(在 node_modules 文件夹使用 npm install )的软件包,则从项目的根文件夹(包含 node_modules 文件夹的文件夹)中运行:
npm uninstall <package-name>
如果使用 -S 或 --save 标志,则此操作还会移除 package.json 文件中的引用。
如果程序包是开发依赖项(列出在 package.json 文件的 devDependencies 中),则必须使用 -D 或 --save-dev 标志从文件中移除:
npm uninstall -S <package-name>
npm uninstall -D <package-name>
结尾
好了,恭喜你已经阅读到了这里,至此你在前端开发中所需要的了解的Node就是上面这些了。
在不寻求全栈发展的前提下,掌握这些知识就已经够了。