课程目标:
- 掌握CommonJS模块系统的基本原理和使用方法。
- 学会创建和管理自定义模块及包。
- 熟悉npm的常用命令,包括安装、更新和发布包。
- 能够解析package.json文件并进行依赖管理。
1. CommonJS模块系统(require/exports)
- 模块化编程的概念和重要性。
- CommonJS规范的核心思想:每个文件都是一个模块,模块使用require导入其他模块,使用exports导出本模块的内容。
/** math.js文件定义了两个函数,并使用module.exports导出它们 */
// math.js
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
module.exports = {
add,
subtract
};
/** main.js文件使用require导入math.js模块,并调用其导出的函数 */
// main.js
const math = require('./math');
console.log(math.add(2, 3)); // 输出: 5
console.log(math.subtract(5, 2)); // 输出: 3
2. 创建自定义模块与包管理
- 如何组织一个自定义模块,包括源代码文件、测试文件等。
- 如何将自定义模块打包成一个npm包,并发布到npm仓库。
/** 假设我们要创建一个简单的日志模块,文件定义了一个简单的日志函数,并导出它 */
// index.js
function log(message) {
console.log(`[LOG] ${message}`);
}
module.exports = log;
/** 创建一个package.json文件,文件包含了包的基本信息,如名称、版本、描述等,通过npm publish命令可以将包发布到npm仓库 */
{
"name": "your-logger",
"version": "1.0.0",
"description": "A simple logger module",
"main": "index.js",
"scripts": {},
"keywords": ["logger", "node", "javascript"],
"author": "Your Email",
"license": "ISC"
}
发布步骤:
- 登录npm账号。
- 在项目根目录运行npm publish命令。
3. npm常用命令(安装、更新、发布包)
- npm的基本使用方法,包括安装、更新和发布包。
- 如何使用npm来管理项目的依赖。
- 安装一个包(例如express)
npm install express
- 更新已安装的包
npm update express
- 全局安装一个包(例如typescript)
npm install -g typescript
- 发布一个自定义包
npm publish
总结
- npm install命令用于安装一个包到当前项目。
- npm update命令用于更新已安装的包到最新版本。
- npm install -g命令用于全局安装一个包,使其可以在命令行中全局使用。
- npm publish命令用于将自定义包发布到npm仓库。
4. 解析package.json与依赖管理
- package.json文件的结构和作用。
- 如何管理项目的依赖,包括安装、更新和删除依赖。
- package-lock.json文件的作用和生成机制。
- 一个典型的package.json文件
{
"name": "my-app",
"version": "1.0.1",
"description": "A simple Node.js app",
"main": "index.js",
"scripts": {
"dev": "node index.js",
"start": "pm2 start index.js -n my-server"
},
"dependencies": {
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.4"
},
"author": "Your Email",
"license": "ISC"
}
注解:
- dependencies字段列出了项目运行时所需的依赖包。
- devDependencies字段列出了项目开发时所需的依赖包(如测试工具、构建工具等)。
- scripts字段定义了一些自定义的脚本命令,可以通过npm run <script>来执行。
- package-lock.json文件记录了项目依赖的确切版本信息,确保在不同环境下安装时能得到一致的结果。
这节课主要内容:包括CommonJS模块系统、自定义模块与包管理、npm常用命令以及package.json与依赖管理,这将是我们后边开发Nodejs系统的框架主要内容及命令内容。
关注我!!🫵 持续Nodejs服务器开发内容。