Node.js 安装
参考官方文档:
# 安装 node.js v10.12.0
$ wget -qO- https://deb.nodesource.com/setup_10.x | sudo -E bash -
$ sudo apt-get install -y nodejs
# 要从 npm 编译和安装原生插件,您可能还需要安装构建工具
$ sudo apt-get install -y build-essential
# 检查当前 node.js 版本
$ node -v
v10.12.0
# 检查当前 npm 版本
$ npm -v
6.4.1
$ sudo apt-get upgrade nodejs ## 更新 node.js
$ sudo apt-get remove nodejs ## 卸载 node.js
# 更新 npm
$ npm i -g npm
Node.js 版本升级
npm 上有一个开源包叫 n,是专门用来管理 node.js 的版本的。
-
安装 n 模块(-g 表示全局环境下安装)。
npm install -g n
-
升级 node 到最新稳定版本。
$ n stable # 你也可以指定 node 版本 $ n v10.11.0 $ n 10.11.0
-
检查当前 node 版本
$ node -v # 查看 node 版本 v10.10.0 $ npm -v # 显示版本,检查 npm 是否正确安装 6.4.1 $ npm version # 显示完整信息 { npm: '6.4.1', ares: '1.14.0', cldr: '33.1', http_parser: '2.8.0', icu: '62.1', modules: '64', napi: '3', nghttp2: '1.33.0', node: '10.10.0', openssl: '1.1.0i', tz: '2018e', unicode: '11.0', uv: '1.23.0', v8: '6.8.275.30-node.24', zlib: '1.2.11' }
NPM 的常用命令
npm 是 Node.js 默认的包管理器。
-
查看帮助
npm help 或 npm h
-
安装模块
npm install <Module Name>
npm i <Module Name> # 简写
# 同时将安装包信息记录到 package.json 的 dependencies 字段(自动更新package.json 文件)
npm i --save <Module Name>
npm i -S <Module Name>
# 开发阶段,记录到 package.json 的 devDependencies 字段
npm i --save -dev <Module Name>
# 示例:
npm install express # 安装 express 模块
npm i uuid # 安装 uuid 模块
npm i moment # 安装 moment 模块(时间处理模块)
npm i node-forge # 安装 node-forge 模块(TLS)
npm i mocha # 安装 mocha 模块(测试框架)
npm i body-parser --save # 安装消息体解析模块
npm i sqlite3 --save # 安装 sqlite3 进程内数据库
npm i node-readability --save # 安装 HTML 页面转化模块
npm i ejs --save # 安装渲染模版引擎
npm i http-errors --save # Create HTTP errors for Express, Koa, Connect, etc. with ease.
-
在全局环境中安装模块(-g:启用 global 模式)
⚠️
- 全局模式并不是将一个模块包安装为一个全局包的意思,它并不意味着可以从任何地方通过
require()
方法引用到它。 -
-g
是将一个包安装为全局可用的可执行命令。 - 如果包中含有命令行工具,那么需要执行全局安装。
- 要全局安装的包一般是工具,即你要在命令行里运行的程序。
npm install -g <Module Name> # 全局安装 express npm install -g express # 使用脚手架快速初始化 Egg.js 项目 npm i egg-init -g egg-init egg-example --type=simple cd egg-example npm i # 全局安装 Express 生成器 sudo -s npm install -g express-generator # 使用 Express 生成器创建应用(oauth) express oauth cd oauth npm install npm start
- 全局模式并不是将一个模块包安装为一个全局包的意思,它并不意味着可以从任何地方通过
-
卸载模块
# 查看 uninstall 用法 npm uninstall -h npm uninstall [<@scope>/]<pkg>[@<version>]... [--save-prod|--save-dev|--save-optional] [--no-save] aliases: un, unlink, remove, rm, r # 使用示例 npm uninstall <Module Name> npm uninstall express # 删除指定的模块 npm uninstall -g express # 全局卸载 express npm un md5 # 移除 md5 模块 npm un node-rsa # 移除 node-rsa 模块
-
显示当前目录下安装的模块
npm list npm ls # 分析包,分析出当前路径下能够通过模块路径找到的所有包,并生成依赖树。 npm list -g
-
显示模块详情
npm show <Module Name> npm show express
-
升级模块
npm update # 升级当前目录下的项目的所有模块 npm update express # 升级当前目录下的项目的指定模块 npm update -g express # 升级全局安装的express模块
初始化生成包描述文件(package.json 文件)
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
package name: (node)
version: (1.0.0)
description:
entry point: (testCrypto.js)
test command:
git repository:
keywords: arlingbc
author:
license: (ISC)
你也可以使用默认值创建 package.json 文件:npm init -y
注册包仓库账号
$ npm adduser
上传包文件
$ npm publish <floder> # 上传包文件到官方仓库
$ npm publish .
管理包权限
通常,一个包只有一个人拥有权限进行发布。
$ npm owner ls <package name>
$ npm owner add <user> <package name>
$ npm owner rm <user> <package name>
node 命令行权限问题
运行 npm 命名时,提示“permission denied...”,解决方法是设置允许不安全权限:
npm config set unsafe-perm=true
# 如果以上方法无效,不妨在命令前加 sudo 提升权限
sudo npm install -g eslint
npm 脚本
npm 脚本可以说是一个微型脚本调用工具,你可以用它构建客户端包、执行测试、生成文档等。
启动服务器的命令(node index.js
)可以保存为 npm 脚本,打开 package.json 文件,在 scripts 里添加一个 start 属性:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
启动程序:npm start
指定端口:PORT=3001 npm start
网友评论