目录
1. node - 启动 Node.js REPL 或执行脚本
14. forever - 让 Node.js 应用永远运行
15. http-server - 简单的 HTTP 服务器
前言
Node.js 是基于 Chrome V8 引擎的 JavaScript 运行环境,可以让 JavaScript 在服务器端运行,不需要在浏览器中。Node.js 的生态系统很强,有很多模块和工具,让开发者能够快速开发高效的网络应用。了解和掌握Node.js 的常用命令对开发者来说很重要。本文会给你介绍一些最常用的 Node.js 命令,帮你更高效的开发。
30条常用的Node.js 命令
1. node
- 启动 Node.js REPL 或执行脚本
这是最基础的命令,用于启动 Node.js 的 REPL(Read-Eval-Print Loop)环境或者执行 JavaScript 文件。
# 启动 REPL 环境
node
# 执行 JavaScript 文件
node your_script.js
2. npm
- Node.js 包管理器
npm 是 Node.js 的包管理器,用于安装、更新、配置和移除 Node.js 包。
# 安装包
npm install package_name
# 更新包
npm update package_name
# 安装全局包
npm install -g package_name
# 移除包
npm uninstall package_name
3. npx
- 执行 Node 包程序
npx 是 npm 5.2.0 版本引入的新工具,用于执行 Node 包中的二进制文件。
# 执行包中的二进制文件
npx package_name
4. nodemon
- 自动重启 Node.js 应用
nodemon 是一个工具,用于在文件更改时自动重启 Node.js 应用,非常适合在开发过程中使用。
# 安装 nodemon(全局)
npm install -g nodemon
# 使用 nodemon 运行应用
nodemon your_script.js
5. express
- 快速搭建 Web 应用框架
Express 是一个灵活的 Node.js Web 应用框架,提供了一系列强大的功能,用于构建单页、多页以及混合 Web 应用。
# 创建一个新的 Express 应用
npx express-generator myapp
# 进入应用目录并安装依赖
cd myapp
npm install
6. git
- 版本控制系统
虽然 Git 不是 Node.js 特有的命令,但它与 Node.js 项目的开发流程紧密相关,用于代码的版本控制。
# 初始化 Git 仓库
git init
# 添加文件到暂存区
git add .
# 提交更改
git commit -m "Initial commit"
# 查看提交历史
git log
7. mocha
- 测试框架
Mocha 是一个功能丰富的 JavaScript 测试框架,适用于 Node.js 和浏览器,让你可以编写和运行异步测试。
# 安装 Mocha
npm install --save-dev mocha
# 运行 Mocha 测试
npx mocha
8. eslint
- 代码质量和风格检查工具
ESLint 是一个静态代码分析工具,帮助你发现和修复代码中的错误,保持代码质量和一致性。
# 安装 ESLint
npm install --save-dev eslint
# 运行 ESLint 检查
npx eslint your_script.js
9. webpack
- 模块打包工具
Webpack 是一个模块打包器,可以将项目的多个模块和资源打包成少数几个文件,通常用于前端资源的优化和打包。
# 安装 Webpack(全局)
npm install -g webpack
# 运行 Webpack
npx webpack
10. pm2
- 进程管理器
PM2 是一个 Node.js 的进程管理器,用于保持应用的持续运行,并提供了日志管理、监控和负载均衡等功能。
# 安装 PM2(全局)
npm install -g pm2
# 启动应用并保持持续运行
pm2 start your_script.js
11. cross-env
- 跨平台设置环境变量
在不同的环境中设置环境变量可能会有所不同。cross-env
工具可以帮助你在不同的操作系统中以相同的方式设置环境变量。
# 安装 cross-env(全局)
npm install -g cross-env
# 使用 cross-env 设置环境变量并启动应用
cross-env NODE_ENV=production npm start
12. node-gyp
- 本地编译原生插件
node-gyp
是一个跨平台的命令行工具,用于编译 Node.js 的原生插件,它支持 Windows、Linux 和 macOS。
# 配置原生插件
node-gyp configure
# 编译原生插件
node-gyp build
13. yarn
- 另一种包管理器
yarn
是一个快速、可靠的包管理器,与 npm 类似,但提供了更优的性能和更准确的依赖解析。
# 安装 yarn(全局)
npm install -g yarn
# 使用 yarn 安装依赖
yarn install
# 使用 yarn 运行脚本
yarn start
14. forever
- 让 Node.js 应用永远运行
forever
是一个简单的 Node.js 应用监控和重启工具,它可以确保你的应用在崩溃或退出时自动重启。
# 安装 forever(全局)
npm install -g forever
# 让应用永远运行
forever start your_script.js
# 查看正在运行的 forever 进程
forever list
15. http-server
- 简单的 HTTP 服务器
http-server
是一个零配置的命令行 HTTP 服务器,非常适合在开发过程中快速预览静态文件。
# 安装 http-server(全局)
npm install -g http-server
# 启动 HTTP 服务器
http-server
16. concurrently
- 同时运行多个命令
concurrently
允许你在同一时间运行多个命令,这对于需要同时启动多个服务或任务的复杂项目非常有用。
# 安装 concurrently(全局)
npm install -g concurrently
# 同时运行两个进程
concurrently "node server.js" "npm run watch"
17. dotenv
- 加载环境变量
dotenv
是一个零依赖的工具,用于从 .env
文件中加载环境变量到 process.env
,非常适合处理敏感信息和不同环境的配置。
# 安装 dotenv
npm install dotenv
# 在项目中加载环境变量
require('dotenv').config();
18. jest
- 测试框架
Jest 是一个流行的 JavaScript 测试框架,它提供了丰富的功能,包括模拟、覆盖率报告和快照测试。
# 安装 Jest
npm install --save-dev jest
# 运行 Jest 测试
npm test
19. ts-node
- TypeScript 运行时
ts-node
是一个执行 TypeScript 代码的 Node.js 工具,它允许你在不先编译 TypeScript 文件的情况下直接运行它们。
# 安装 ts-node(全局)
npm install -g ts-node
# 直接运行 TypeScript 文件
ts-node your_script.ts
20. puppeteer
- 无头浏览器自动化
Puppeteer 是一个 Node.js 库,提供了一套高级 API 来控制无头 Chrome 或 Chromium,非常适合进行网页截图、PDF 生成、UI 测试等自动化任务。
# 安装 Puppeteer
npm install puppeteer
# 使用 Puppeteer 进行自动化操作
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'example.png' });
await browser.close();
})();
21. node-inspector
- 调试工具
node-inspector
是一个调试工具,它结合了 node-debug
和 Blink Developer Tools
来提供强大的调试体验。它支持断点、实时数据查看和远程调试等功能。
# 安装 node-inspector(全局)
npm install -g node-inspector
# 启动调试服务器
node-inspector
# 在浏览器中打开调试界面,通常是 http://127.0.0.1:8080
22. socket.io
- 实时通信库
socket.io
是一个实现实时双向事件通信的库,它支持 WebSocket 以及其他实时通信技术,适用于构建实时应用如聊天室、游戏或协作工具。
# 安装 socket.io
npm install socket.io
# 创建一个简单的 socket.io 服务器
const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
server.listen(3000);
23. mongoose
- MongoDB 对象模型工具
mongoose
是一个 MongoDB 对象模型工具,它提供了丰富的 API 来处理数据库操作,简化了数据模型的定义和数据库的交互。
# 安装 mongoose
npm install mongoose
# 连接 MongoDB 并定义模型
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myapp', { useNewUrlParser: true });
const userSchema = new mongoose.Schema({
name: String,
age: Number
});
const User = mongoose.model('User', userSchema);
24. helmet
- 安全性中间件
helmet
是一个 Node.js 中间件,用于提高 HTTP 头部的安全性,它可以设置多种 HTTP 头部来防止各种常见的 Web 攻击。
# 安装 helmet
npm install helmet
# 在 Express 应用中使用 helmet
const express = require('express');
const helmet = require('helmet');
const app = express();
app.use(helmet());
25. compression
- 响应压缩中间件
compression
是一个 Node.js 中间件,用于压缩响应数据,减少传输数据的大小,提高加载速度。
# 安装 compression
npm install compression
# 在 Express 应用中使用 compression
const express = require('express');
const compression = require('compression');
const app = express();
app.use(compression());
26. cors
- 跨源资源共享中间件
cors
是一个 Node.js 中间件,用于实现跨源资源共享(CORS),它简化了跨域请求的处理。
# 安装 cors
npm install cors
# 在 Express 应用中使用 cors
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
27. async
- 异步操作库
async
是一个强大的 Node.js 异步操作库,提供了多种工具来处理异步流程控制,如并行执行、串行执行、水井模型等。
# 安装 async
npm install async
# 使用 async 并行执行多个异步任务
const async = require('async');
async.parallel([
function(callback) {
setTimeout(callback, 1000, 'one');
},
function(callback) {
setTimeout(callback, 3000, 'two');
},
function(callback) {
setTimeout(callback, 5000, 'three');
}
], function(err, results) {
console.log(results);
});
28. lodash
- 实用工具库
lodash
是一个一致性、模块化、高性能的 JavaScript 实用工具库,它提供了丰富的函数来处理数组、数字、对象、字符串等。
# 安装 lodash
npm install lodash
# 使用 lodash 进行数组操作
const _ = require('lodash');
const array = [1, 2, 3, 4, 5, 6];
const doubled = _.map(array, (n) => n * 2);
29. moment
- 时间处理库
moment
是一个流行的时间处理库,它提供了丰富的 API 来解析、验证、操作和显示日期和时间。
# 安装 moment
npm install moment
# 使用 moment 处理时间
const moment = require('moment');
const now = moment();
console.log(now.format('MMMM Do YYYY, h:mm:ss a'));
30. axios
- HTTP 客户端
axios
是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。它提供了一种简洁的方式来发送 HTTP 请求和处理响应。
# 安装 axios
npm install axios
# 使用 axios 发送 GET 请求
const axios = require('axios');
axios.get('https://api.example.com/data')
.then(function (response) {
console.log(response.data);
})
.catch(function (error) {
console.log(error);
});
总结
这些工具和命令能帮助你在Node.js开发中搞定很多事情,包括调试、数据库操作、安全性、性能优化、异步编程和HTTP通信等。学会这些工具能让你的Node.js应用更稳健、高效和易维护。而且,随着项目需求的不断增加,Node.js生态系统里总能发现新的工具和命令,帮助你更好的开发。