- NodeJs从零开始学习计划
- NodeJs的介绍
- JavaScript 的基础知识
- NodeJs的安装及运行机制
- NodeJs常用模块
- NodeJs的文件读写及Http服务器的创建
- 回调函数及异步事件
- NodeJs的模块系统
- Web 开发基础
- NodeJs数据库交互
- NodeJs相关测试框架
- NodeJs安全
- NodeJs性能优化
- Node.js 中使用 GraphQL、WebSockets 和 Serverless
NodeJs的模块系统
class NodeJs模块系统1. Node.js 的模块系统
Node.js 提供了两种模块系统:CommonJS 和 ES6 模块(ESM)。理解它们的使用对于编写和组织代码非常重要。
1.1 CommonJS 模块系统
CommonJS 是 Node.js 中默认的模块系统。它使用 require
函数导入模块,使用 module.exports
或 exports
导出模块。
导出模块
// math.js
function add(a, b) {
return a + b;
}
function multiply(a, b) {
return a * b;
}
// 导出函数
module.exports = { add, multiply };
导入模块
// app.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出 5
console.log(math.multiply(2, 3)); // 输出 6
模块缓存
每个模块只会被加载一次,并且会被缓存。这意味着在不同地方 require
相同模块时,返回的都是相同的实例。
1.2 ES6 模块系统
ES6 引入了新的模块系统(ESM),它在 Node.js 中通过 .mjs
文件或在 package.json
中设置 "type": "module"
来启用。
导出模块
// math.mjs
export function add(a, b) {
return a + b;
}
export function multiply(a, b) {
return a * b;
}
导入模块
// app.mjs
import { add, multiply } from './math.mjs';
console.log(add(2, 3)); // 输出 5
console.log(multiply(2, 3)); // 输出 6
ES6 模块支持静态分析,因此导入和导出必须在顶层作用域中进行,不能在条件语句或函数中动态导入。
2. npm 和 package.json
npm 是 Node.js 的包管理工具,用于管理项目的依赖项和脚本。
2.1 初始化项目
在项目的根目录中运行以下命令来初始化 package.json
文件:
npm init
你可以根据提示填写项目的相关信息,也可以使用 npm init -y
自动生成默认配置的 package.json
。
2.2 安装依赖
安装依赖包
npm install express
默认情况下,这会将 express
包添加到 dependencies
中,并下载到 node_modules
目录下。
安装开发依赖
npm install jest --save-dev
使用 --save-dev
标志可以将包添加到 devDependencies
中,这类依赖只在开发环境中需要。
全局安装
npm install -g nodemon
使用 -g
标志可以全局安装包,使其在任何地方都可以使用。
2.3 管理依赖
package.json
文件中包含了项目的元信息和依赖管理信息。
依赖项
{
"name": "my-project",
"version": "1.0.0",
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"jest": "^26.6.3"
}
}
更新依赖
npm update
更新项目中的依赖到最新版本,同时遵循 package.json
中指定的版本范围。
移除依赖
npm uninstall express
从项目中移除依赖,并更新 package.json
。
2.4 脚本
你可以在 package.json
中定义自定义的脚本,这些脚本可以通过 npm run <script-name>
来执行。
示例:定义和运行脚本
{
"scripts": {
"start": "node app.js",
"test": "jest"
}
}
运行 npm start
将会执行 node app.js
,运行 npm test
将会执行 jest
。
2.5 发布包
发布步骤
- 登录 npm:使用
npm login
登录到 npm 注册账号。 - 发布包:运行
npm publish
将你的包发布到 npm 注册表。 - 更新版本:每次发布新版本时,需要更新
package.json
中的版本号。
示例:发布包
npm publish
发布后,其他开发者可以通过 npm install <your-package-name>
安装你的包。
总结
Node.js 提供了两种模块系统(CommonJS 和 ES6 模块),每种都有其独特的使用方式。npm 是 Node.js 的包管理工具,package.json
是管理项目依赖、定义脚本、以及发布包的重要文件。通过掌握这些工具和技术,你可以有效地管理 Node.js 项目,组织代码,并与社区分享你的工作。