赞
踩
目录
30条常用的 Node.js 的命令(第1~90条在上一篇)
91. lodash - 现代 JavaScript 实用库
92. moment-timezone - 时区支持的日期库
98. react - 用于构建用户界面的 JavaScript 库
99. next.js - 用于构建静态网站和服务器渲染应用的框架
100. vue.js - 渐进式 JavaScript 框架
101. socket.io-redis - Socket.IO 的 Redis 适配器
102. node-gyp - Node.js 原生模块编译工具
105. jsonwebtoken - JSON Web Tokens 库
106. lodash - 现代 JavaScript 实用库
108. axios - 基于 Promise 的 HTTP 客户端
111. eslint - JavaScript 代码质量和风格检查工具
113. webpack-dev-server - 带有热重载的本地开发服务器
115. nodemon - 自动重启 Node.js 应用
118. dotenv-webpack - Webpack 环境变量加载器
承接我上一篇发的文章,我们来继续探索 Node.js 的高级工具和命令,可以深入了解一些特定用途的工具,这些工具在特定场景下非常有用,可以帮助开发者解决复杂的问题,提高开发效率。
lodash
- 现代 JavaScript 实用库lodash
是一个提供各种实用功能的 JavaScript 库,它提供了一系列的函数来帮助处理数组、数字、对象、字符串等。
- # 安装 lodash
- npm install lodash
-
- # 使用 lodash 进行数组操作
- const _ = require('lodash');
-
- const numbers = [1, 2, 3, 4, 5];
- const doubled = _.map(numbers, (n) => n * 2);
moment-timezone
- 时区支持的日期库moment-timezone
是 moment.js
的一个扩展,它提供了时区支持,使得在不同时区处理日期和时间变得更加容易。
- # 安装 moment-timezone
- npm install moment-timezone
-
- # 使用 moment-timezone 处理时区
- const moment = require('moment-timezone');
-
- const now = moment().tz('America/New_York').format();
- console.log('Current time in New York:', now);
js-yaml
- YAML 解析和生成js-yaml
是一个用于解析和生成 YAML 文件的 JavaScript 库,它允许你轻松地在 JavaScript 对象和 YAML 格式之间转换。
- # 安装 js-yaml
- npm install js-yaml
-
- # 使用 js-yaml 解析 YAML
- const yaml = require('js-yaml');
-
- const doc = yaml.load('name: John Doe\nage: 42');
- console.log(doc);
handlebars
- 模板引擎handlebars
是一个流行的模板引擎,它允许你使用简单的模板语言来生成 HTML、XML 或其他标记。
- # 安装 handlebars
- npm install handlebars
-
- # 使用 handlebars 渲染模板
- const handlebars = require('handlebars');
-
- const template = handlebars.compile('Hello, {{name}}!');
- const html = template({ name: 'John' });
- console.log(html);
marked
- Markdown 解析器marked
是一个 Markdown 解析器,它允许你将 Markdown 文本转换为 HTML。
- # 安装 marked
- npm install marked
-
- # 使用 marked 解析 Markdown
- const marked = require('marked');
-
- const markdown = '# Markdown Example\n\nThis is some **bold** text.';
- const html = marked(markdown);
- console.log(html);
nodemailer
- 邮件发送库nodemailer
是一个全面的邮件发送库,它支持 SMTP、Gmail、Mailgun 等多种邮件发送服务。
- # 安装 nodemailer
- npm install nodemailer
-
- # 使用 nodemailer 发送邮件
- const nodemailer = require('nodemailer');
-
- const transporter = nodemailer.createTransport({
- service: 'gmail',
- auth: {
- user: 'your_email@gmail.com',
- pass: 'your_password'
- }
- });
-
- const mailOptions = {
- from: 'your_email@gmail.com',
- to: 'recipient_email@example.com',
- subject: 'Test Email',
- text: 'This is a test email'
- };
-
- transporter.sendMail(mailOptions, (error, info) => {
- if (error) {
- console.log(error);
- } else {
- console.log('Email sent: ' + info.response);
- }
- });
restify
- REST API 框架restify
是一个用于构建 RESTful API 的 Node.js 框架,它提供了丰富的功能,包括路由、中间件、验证等。
- # 安装 restify
- npm install restify
-
- # 使用 restify 创建 REST API
- const restify = require('restify');
-
- const server = restify.createServer();
- server.get('/', (req, res) => {
- res.send('Hello, RESTful world!');
- });
-
- server.listen(8080, () => {
- console.log('%s listening at %s', server.name, server.url);
- });
react
- 用于构建用户界面的 JavaScript 库虽然 react
本身不是一个 Node.js 工具,但它与 Node.js 配合使用时可以构建强大的前端应用。
- # 安装 react 和 react-dom
- npm install react react-dom
-
- // 使用 react 构建组件
- import React from 'react';
- import ReactDOM from 'react-dom';
-
- const App = () => <div>Hello, React!</div>;
-
- ReactDOM.render(<App />, document.getElementById('root'));
next.js
- 用于构建静态网站和服务器渲染应用的框架next.js
是一个轻量级的框架,用于构建优化的静态网站和服务器渲染的 React 应用。
- # 创建一个新的 next.js 应用
- npx create-next-app my-next-app
-
- # 运行 next.js 应用
- cd my-next-app
- npm run dev
vue.js
- 渐进式 JavaScript 框架与 React 类似,vue.js
也不是一个 Node.js 工具,但它可以在 Node.js 环境中构建,并用于创建动态的前端应用。
- # 安装 vue.js
- npm install vue
-
- // 使用 vue 创建组件
- new Vue({
- el: '#app',
- template: '<h1>{{ message }}</h1>',
- data: {
- message: 'Hello Vue!'
- }
- });
socket.io-redis
- Socket.IO 的 Redis 适配器socket.io-redis
允许 Socket.IO 使用 Redis 作为后端来同步多个 Node.js 服务器上的 WebSocket 会话。
- # 安装 socket.io-redis
- npm install socket.io-redis
-
- # 使用 socket.io-redis 作为适配器
- const server = require('http').createServer();
- const io = require('socket.io')(server);
- const redis = require('redis');
- const redisAdapter = require('socket.io-redis');
-
- const pub = redis.createClient();
- const sub = redis.createClient();
-
- io.adapter(redisAdapter({ pub, sub }));
-
- io.on('connection', (socket) => {
- socket.on('message', (msg) => {
- console.log('message:', msg);
- });
- });
node-gyp
- Node.js 原生模块编译工具node-gyp
是一个工具,用于编译 Node.js 的原生模块,它支持 Windows、Linux 和 macOS。
- # 使用 node-gyp 编译原生模块
- node-gyp configure
- node-gyp build
node-sass
- Sass 编译器node-sass
是一个库,用于将 Sass 文件编译为 CSS 文件,它提供了与 Ruby Sass 兼容的 API。
- # 安装 node-sass
- npm install node-sass
-
- # 使用 node-sass 编译 Sass
- const sass = require('node-sass');
- sass.render({
- file: 'path/to/file.scss',
- }, (err, result) => {
- if (err) throw err;
- console.log(result.css.toString());
- });
bcryptjs
- 密码哈希库bcryptjs
是一个轻量级的库,用于在 Node.js 和浏览器中执行密码哈希。
- # 安装 bcryptjs
- npm install bcryptjs
-
- # 使用 bcryptjs 进行密码哈希
- const bcrypt = require('bcryptjs');
-
- bcrypt.hashpw('rasmuslerdorf', 8, (err, hash) => {
- console.log(hash);
- });
jsonwebtoken
- JSON Web Tokens 库jsonwebtoken
是一个用于创建和验证 JSON Web Tokens (JWT) 的库。
- # 安装 jsonwebtoken
- npm install jsonwebtoken
-
- # 使用 jsonwebtoken 创建 JWT
- const jwt = require('jsonwebtoken');
-
- const token = jwt.sign({ name: 'John Doe' }, 'secret_key', {
- expiresIn: '1h'
- });
lodash
- 现代 JavaScript 实用库lodash
是一个提供各种实用功能的 JavaScript 库,它提供了一系列的函数来帮助处理数组、数字、对象、字符串等。
- # 安装 lodash
- npm install lodash
-
- # 使用 lodash 进行数组操作
- const _ = require('lodash');
-
- const numbers = [1, 2, 3, 4, 5];
- const doubled = _.map(numbers, (n) => n * 2);
moment
- 强大的日期库moment
是一个解析、验证、操作和显示日期和时间的库。
- # 安装 moment
- npm install moment
-
- # 使用 moment 处理日期
- const moment = require('moment');
-
- const now = moment();
- console.log(now.format('MMMM Do YYYY, h:mm:ss a'));
axios
- 基于 Promise 的 HTTP 客户端axios
是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。
- # 安装 axios
- npm install axios
-
- # 使用 axios 发送 HTTP 请求
- const axios = require('axios');
-
- axios.get('https://api.example.com/data')
- .then((response) => {
- console.log(response.data);
- })
- .catch((error) => {
- console.log(error);
- });
webpack
- 模块打包工具webpack
是一个模块打包工具,用于将资产(如 JavaScript 文件)打包到浏览器可加载的格式。
- # 安装 webpack 和 webpack-cli
- npm install webpack webpack-cli --save-dev
-
- # 使用 webpack 打包应用
- npx webpack --config webpack.config.js
prettier
- 代码格式化工具prettier
是一个代码格式化工具,支持多种语言,可以自动格式化代码,保持代码风格的一致性。
- # 安装 prettier
- npm install prettier --save-dev
-
- # 使用 prettier 格式化代码
- npx prettier --write "path/to/file.js"
eslint
- JavaScript 代码质量和风格检查工具eslint
是一个静态代码分析工具,用于识别和报告 JavaScript 代码中的模式,旨在使代码更一致并避免错误。
- # 安装 eslint
- npm install eslint --save-dev
-
- # 运行 eslint 检查代码
- npx eslint your_script.js
jest
- JavaScript 测试框架jest
是一个流行的 JavaScript 测试框架,它提供了丰富的功能,包括模拟、覆盖率报告和快照测试。
- # 安装 jest
- npm install jest --save-dev
-
- # 运行 jest 测试
- npx jest
webpack-dev-server
- 带有热重载的本地开发服务器webpack-dev-server
是一个提供实时重新加载、代理支持和自动浏览器刷新的本地开发服务器。
- # 安装 webpack-dev-server
- npm install webpack-dev-server --save-dev
-
- # 在 webpack 配置中使用 webpack-dev-server
- const webpack = require('webpack');
-
- module.exports = {
- // ...其他配置
- devServer: {
- contentBase: './dist',
- compress: true,
- port: 9000,
- },
- plugins: [
- new webpack.HotModuleReplacementPlugin(),
- ],
- };
ts-node
- TypeScript 运行时ts-node
是一个执行 TypeScript 代码的 Node.js 工具,它允许你在不先编译 TypeScript 文件的情况下直接运行它们。
- # 安装 ts-node
- npm install ts-node --save-dev
-
- # 直接运行 TypeScript 文件
- npx ts-node your_script.ts
nodemon
- 自动重启 Node.js 应用nodemon
是一个工具,用于在文件更改时自动重启 Node.js 应用,非常适合在开发过程中使用。
- # 安装 nodemon
- npm install nodemon --save-dev
-
- # 使用 nodemon 运行应用
- npx nodemon your_script.js
yarn
- 另一种包管理器yarn
是一个快速、可靠的包管理器,与 npm 类似,但提供了更优的性能和更准确的依赖解析。
- # 安装 yarn(全局)
- npm install -g yarn
-
- # 使用 yarn 安装依赖
- yarn install
-
- # 运行脚本
- yarn start
cross-env
- 跨平台设置环境变量cross-env
是一个用于在不同的环境中设置环境变量的工具,它允许你在 .env
文件中定义环境变量,并在 Node.js 应用中使用。
- # 安装 cross-env
- npm install cross-env --save-dev
-
- # 在 package.json 中使用 cross-env
- "scripts": {
- "start": "cross-env NODE_ENV=production node app.js"
- }
dotenv-webpack
- Webpack 环境变量加载器dotenv-webpack
是一个用于在 Webpack 项目中加载 .env
文件的插件。
- # 安装 dotenv-webpack
- npm install dotenv-webpack --save-dev
-
- # 在 Webpack 配置中使用 dotenv-webpack
- const Dotenv = require('dotenv-webpack');
-
- module.exports = {
- // ...其他配置
- plugins: [
- new Dotenv(),
- ],
- };
jsdom
- DOM 操作和模拟浏览器环境jsdom
是一个纯 JavaScript 实现的 DOM 操作库,它提供了一个模拟浏览器环境,用于在 Node.js 中处理 HTML 和 DOM。
- # 安装 jsdom
- npm install jsdom --save-dev
-
- // 使用 jsdom 创建一个 DOM 环境
- const jsdom = require('jsdom');
- const { JSDOM } = jsdom;
-
- const dom = new JSDOM('<!DOCTYPE html><html><body>Hello world</body></html>');
- const { window } = dom;
- global.window = window;
- global.document = window.document;
- global.navigator = {
- userAgent: 'node.js'
- };
puppeteer
- 无头浏览器自动化puppeteer
是一个 Node.js 库,提供了一套高级 API 来控制无头 Chrome 或 Chromium,非常适合进行网页截图、PDF 生成、UI 测试等自动化任务。
- # 安装 puppeteer
- npm install puppeteer --save-dev
-
- // 使用 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();
- })();
这些工具和库覆盖了 Node.js 开发的多个方面,从代码质量检查、测试、开发服务器、TypeScript 支持、自动重启、环境变量管理、Webpack 配置、跨平台操作到无头浏览器自动化。掌握这些工具将帮助你构建更加健壮、高效和可维护的 Node.js 应用。随着你的项目需求不断增长,Node.js 的生态系统中总有新的工具和命令等待你去发现和利用。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。