提升开发效率:npm包管理器的使用技巧

文章目录

  • 一、npm简介
  • 二、npm的基本操作
    • 1. 安装Node.js和npm
    • 2. 创建和管理项目
    • 3. 安装依赖
    • 4. 卸载依赖
    • 5. 更新依赖
  • 三、npm的高级特性
    • 1. 使用不同版本的依赖项
    • 2. 查看已安装的依赖项和它们的版本信息
    • 3. 运行脚本命令
  • 《Node.js从入门到精通(软件开发视频大讲堂)》
    • 编辑推荐
    • 内容简介
    • 作者简介
    • 目录


随着Web开发技术的不断发展,前端工程化已经成为了一个不可忽视的趋势。在这其中,Node.js作为一门轻量级的JavaScript运行时环境,已经成为了前端工程师必备的技能之一。而npm(Node Package Manager)作为Node.js的包管理器,也成为了我们日常开发中的得力助手。本文将介绍npm包管理器的使用和原理,帮助大家更好地掌握这一强大的工具。

一、npm简介

npm是Node.js官方提供的包管理工具,它可以帮助我们轻松地安装、共享和管理JavaScript代码。通过npm,我们可以快速地找到所需的库和模块,从而提高开发效率。同时,npm还提供了一个庞大的开发者社区,让我们可以轻松地分享自己的代码和学习他人的优秀作品。

二、npm的基本操作

1. 安装Node.js和npm

在开始使用npm之前,我们需要先安装Node.js。访问Node.js官网(https://nodejs.org/)下载并安装适合自己操作系统的版本。安装完成后,npm会自动安装到系统中。

2. 创建和管理项目

要使用npm管理项目,首先需要创建一个文件夹并在其中初始化一个新的npm项目。打开命令行工具,进入文件夹,然后输入以下命令:

npm init

按照提示填写项目的相关信息,如项目名称、版本号等。完成初始化后,会在项目目录下生成一个package.json文件,用于存储项目的元数据和依赖关系。

3. 安装依赖

在项目中使用第三方库或模块时,可以使用npm进行安装。例如,要安装一个名为express的Web框架,可以在命令行中输入以下命令:

npm install express --save

这里的--save参数表示将该依赖添加到package.json文件的dependencies列表中,以便在下次构建项目时自动安装。如果不加这个参数,依赖会被安装在当前项目中,但不会添加到package.json文件中。

4. 卸载依赖

如果不再需要某个依赖项,可以使用以下命令将其卸载:

npm uninstall express --save

5. 更新依赖

当依赖项有新版本发布时,可以使用以下命令进行更新:

npm update express --save

三、npm的高级特性

1. 使用不同版本的依赖项

有时,我们可能需要在同一个项目中使用不同版本的依赖项。这时,可以在package.json文件中指定每个依赖项的版本范围。例如,要同时支持express的3个主要版本,可以将依赖项的版本声明为^3.0.0

{"dependencies": {"express": "^3.0.0"}
}

这里的^符号表示允许安装该范围下的最新版本。如果需要固定某个版本,可以使用~符号。例如,要固定使用express的3.0.0版本,可以这样声明:

{"dependencies": {"express": "3.0.0"}
}

2. 查看已安装的依赖项和它们的版本信息

可以使用以下命令:

npm list --depth=0

3. 运行脚本命令

package.json文件中,我们可以定义一些自定义的脚本命令。这些命令可以在命令行中直接运行,以执行特定的任务。例如,我们可以添加一个名为start的脚本来启动项目:

{"scripts": {"start": "node app.js"}
}

然后,在命令行中输入以下命令来运行该脚本:

npm start

《Node.js从入门到精通(软件开发视频大讲堂)》

在这里插入图片描述

编辑推荐

“软件开发视频大讲堂”丛书是清华社计算机专业基础类零售图书畅销品牌之一。

(1)2008—2023年,丛书累计修订7次,销售400万册,深受广大程序员喜爱。

(2)4本荣获“全行业优畅销书”奖,1本荣获清华社“专业畅销书”一等奖,多数品种在全国计算机零售图书排行榜排行中名列前茅。

(3)实用、易懂、资源丰富,被数百所高校选为专业课教材。

《Node.js从入门到精通》,Node.js入门实战经典,本书有以下特点。

  1. 学通Node.js只需要4步:基础知识→核心技术→高级应用→项目实战,符合认知规律。

  2. 53集同步教学微课+强化实战训练+在线答疑,夯实基础,精准,有效,速练,适合自学。

  3. 63个应用实例+1个项目案例,学习1小时,训练10小时,从入门到项目上线,真正成为Node.js高手。

  4. 根据图书首页说明,扫描书中二维码,打开明日科技账号注册页面,填写注册信息后将自动获取Web前端开发资源库一年(自注册之日起)的VIP使用权限。

(1)技术资源库:439个技术要点,系统、全面,随时随地学习。

(2)实例资源库:393个应用实例,含大量热点实例和关键实例,巩固编程技能。

(3)项目资源库:13个实战项目,快速积累项目经验,总有一个你找工作会用到。

(4)源码资源库:406项源代码详细分析,多读源码,快速成长。

(5)视频资源库:677集学习视频,边看视频边学习,提升更快。

(6)面试资源库:Web前端企业面试真题,合理职业规划,快速就业。

学会、用好Web前端开发资源库,可在短时间内从小白晋升为一名软件工程师。

  1. 在线解答,高效学习。

(1)关注清大文森学堂公众号,可获取本书的源代码、PPT课件、视频等资源。

(2)关注清大文森学堂公众号,可加入本书的学习交流群,参加图书直播答疑。

内容简介

《Node.js从入门到精通》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Node.js进行Web应用开发需要掌握的各方面技术。全书分为4篇,共18章,包括Node.js环境搭建、第一个Node.js服务器程序、npm包管理器的使用、Node.js基础、事件的监听与触发、util工具模块、fs文件系统模块、os操作系统模块、异步编程与回调、I/O流操作、Web应用构建基础、WebSocket网络编程、Web模板引擎、Express框架、数据存储之MySQL数据库、数据存储之MongoDB数据库、程序调试与异常处理、在线五子棋游戏等内容。本书知识点结合具体实例进行介绍,涉及的程序代码给出了详细的注释,可以使读者轻松领会使用Node.js进行Web应用开发的精髓,快速提高开发技能。

作者简介

明日科技,全称是吉林省明日科技有限公司,是一家专业从事软件开发、教育培训以及软件开发教育资源整合的高科技公司,其编写的教材非常注重选取软件开发中的必需、常用内容,同时也很注重内容的易学、方便性以及相关知识的拓展性,深受读者喜爱。其教材多次荣获“全行业优秀畅销品种”“全国高校出版社优秀畅销书”等奖项,多个品种长期位居同类图书销售排行榜的前列。

目录

1篇 基础知识第1章 Node.js环境搭建 2视频讲解:35分钟1.1 认识Node.js 21.1.1 什么是Node.js 21.1.2 Node.js的工作原理 41.1.3 Node.js的优缺点 51.1.4 Node.js能做什么 51.1.5 谁在使用Node.js 61.2 Node.js的下载与安装 61.2.1 下载并安装Node.js 61.2.2 测试Node.js是否安装成功 91.3 熟悉WebStorm开发工具 101.3.1 WebStorm的下载 101.3.2 WebStorm的安装 111.3.3 WebStorm首次加载配置 121.3.4 WebStorm功能区预览 161.3.5 WebStorm中英文对照菜单 161.3.6 工具栏 181.3.7 常用快捷键 181.4 要点回顾 192章 第一个Node.js服务器程序 20视频讲解:6分钟2.1 使用WebStorm创建第一个Node.js程序 202.2 在WebStorm中运行Node.js程序 232.3 使用cmd命令运行Node.js程序 252.4 解决Node.js程序输出中文时出现乱码的问题 262.5 要点回顾 273章 npm包管理器的使用 28视频讲解:8分钟3.1 npm包管理器基础 283.1.1 npm概述 283.1.2 查看npm的版本 293.1.3 常用npm软件包 303.2 package.json基础 323.2.1 认识package.json 323.2.2 npm中的package-lock.json文件 343.3 使用npm包管理器安装包 363.3.1 安装单个软件包 363.3.2 安装软件包的指定版本 383.3.3 安装所有软件包 393.3.4 更新软件包 413.3.5 指定npm软件包的安装位置 413.3.6 卸载npm软件包 423.4 要点回顾 434章 Node.js基础 44视频讲解:34分钟4.1 Node.js全局对象 444.1.1 全局变量 444.1.2 全局对象 454.1.3 全局函数 494.2 模块化编程 514.2.1 exports对象 514.2.2 module对象 524.3 要点回顾 535章 事件的监听与触发 54视频讲解:21分钟5.1 EventEmitter对象 545.2 添加和触发监听事件 575.2.1 添加监听事件 575.2.2 添加单次监听事件 595.2.3 触发监听事件 605.3 删除监听事件 615.4 要点回顾 632篇 核心技术第6章 util工具模块 66视频讲解:3分钟6.1 util模块概述 666.2 util模块的使用 676.2.1 格式化输出字符串 676.2.2 将对象转换为字符串 686.2.3 实现对象间的原型继承 696.2.4 转换异步函数的风格 706.2.5 判断是否为指定类型的内置对象 706.3 要点回顾 737章 fs文件系统模块 74视频讲解:47分钟7.1 文件的读取与写入 747.1.1 检查文件是否存在 747.1.2 文件读取 777.1.3 文件写入 797.1.4 文件操作时的异常处理 827.2 文件操作 837.2.1 截断文件 837.2.2 删除文件 847.2.3 复制文件 857.2.4 重命名文件 877.3 目录操作 887.3.1 创建目录 887.3.2 读取目录 917.3.3 删除空目录 917.3.4 查看目录信息 927.3.5 获取目录的绝对路径 947.4 要点回顾 958章 os操作系统模块 96视频讲解:2分钟8.1 获取内存相关信息 968.1.1 获取系统剩余内存 968.1.2 获取系统总内存 978.2 获取网络相关信息 988.3 获取系统相关目录 998.3.1 获取用户主目录 998.3.2 获取临时文件目录 998.4 获取系统相关信息 1008.5 os模块常用属性 1068.6 要点回顾 1079章 异步编程与回调 108视频讲解:31分钟9.1 同步和异步 1089.2 回调函数 1109.3 使用async/await的异步编程 1129.3.1 Promise基础 1129.3.2 为什么使用async/await 1159.3.3 async/await的使用 1169.3.4 使用async/await异步编程的优点 1189.4 要点回顾 11810I/O流操作 119视频讲解:71分钟10.1 流简介 11910.1.1 流的基本概念 11910.1.2 了解Buffer 12010.2 可读流的使用 12010.2.1 流的读取模式与状态 12010.2.2 可读流的创建 12110.2.3 可读流的属性、方法及事件 12110.2.4 可读流的常见操作 12310.3 可写流的使用 12710.3.1 可写流的创建 12710.3.2 可写流的属性、方法及事件 12810.3.3 可写流的常见操作 12910.4 双工流与转换流介绍 13210.4.1 双工流 13210.4.2 转换流 13310.5 要点回顾 1353篇 高级应用第11章 Web应用构建基础 138视频讲解:97分钟11.1 Web应用开发基础 13811.1.1 请求与响应 13811.1.2 客户端与服务器端 13911.2 url和querystring模块 14111.2.1 url模块 14111.2.2 querystring模块 14211.3 http模块 14311.3.1 server对象 14311.3.2 response对象 14411.3.3 request对象 14911.4 path模块 15211.4.1 绝对路径和相对路径 15211.4.2 path模块的常见操作 15311.4.3 path模块的属性 16111.5 要点回顾 16112章 WebSocket网络编程 162视频讲解:41分钟12.1 WebSocket网络编程的基本实现 16212.1.1 WebSocket服务器端实现 16312.1.2 WebSocket客户端实现 16412.1.3 服务器端和客户端的通信 16612.2 socket数据通信类型 16912.2.1 public通信类型 16912.2.2 broadcast通信类型 17212.2.3 private通信类型 17412.3 客户端分组的实现 17712.4 项目实战—聊天室 18212.4.1 服务器端实现 18212.4.2 客户端实现 18312.4.3 运行项目 18512.5 要点回顾 18513章 Web模板引擎 186视频讲解:33分钟13.1 ejs模块 18613.1.1 ejs模块的渲染方法 18613.1.2 ejs模块的数据传递 19113.2 pug模块 19413.2.1 pug文件基本语法 19413.2.2 pug模块的渲染方法 19913.2.3 pug模块的数据传递 20113.3 要点回顾 20314章 Express框架 204视频讲解:102分钟14.1 认识express模块 20514.1.1 express模块的基本使用步骤 20514.1.2 express模块中的响应对象 20514.1.3 express模块中的请求对象 20714.2 express模块中间件 20814.2.1 认识中间件 20814.2.2 router中间件 20914.2.3 static中间件 21014.2.4 cookie parser中间件 21114.2.5 body parser中间件 21314.3 实现RESTful Web服务 21614.4 express-generator模块 21914.4.1 创建项目 21914.4.2 设置项目参数 22114.4.3 express-generator模块应用 22214.5 Koa框架基础 22814.5.1 认识Koa框架 22814.5.2 Koa框架的基本使用 22814.6 项目实战—选座购票 23014.7 要点回顾 23515章 数据存储之MySQL数据库 236视频讲解:39分钟15.1 MySQL数据库的下载和安装 23615.1.1 数据库简介 23615.1.2 下载MySQL 23715.1.3 安装MySQL 23815.1.4 配置MySQL环境变量 24515.1.5 启动MySQL 24715.1.6 使用Navicat for MySQL管理软件 24815.2 MySQL数据库操作基础 25015.2.1 认识SQL语言 25015.2.2 数据库操作 25015.2.3 数据表操作 25215.2.4 数据的增删改查 25715.3 在Node.js中操作MySQL数据库 26215.3.1 Node.js中的mysql模块 26215.3.2 Node.js中对MySQL实现增删改查操作 26715.4 要点回顾 27416章 数据存储之MongoDB数据库 275视频讲解:47分钟16.1 MongoDB数据库的下载、安装与配置 27516.1.1 关系型数据库与非关系型数据库 27616.1.2 下载MongoDB数据库 27616.1.3 安装MongoDB数据库 27716.1.4 配置并测试MongoDB数据库 27916.2 MongoDB数据库基本操作 28216.2.1 使用JavaScript语言 28216.2.2 数据库、集合与文档 28316.2.3 添加数据 28412.2.4 查询数据 28516.2.5 修改数据 28616.2.6 删除数据 28716.3 项目实战—心情日记 28716.3.1 Node.js中的mongojs模块 28816.3.2 初始化数据 28916.3.3 主页的实现 29016.3.4 添加日记 29116.3.5 修改日记 29316.3.6 删除日记 29416.3.7 用户登录与退出 29516.4 要点回顾 29717章 程序调试与异常处理 298视频讲解:20分钟17.1 使用console.log()方法调试程序 29817.2 使用WebStorm调试程序 29917.2.1 插入断点 29917.2.2 删除断点 30017.2.3 禁用断点 30117.2.4 断点调试 30217.3 Node.js程序异常处理 30317.3.1 使用throw关键字抛出异常 30317.3.2 Error错误对象 30417.3.3 使用try…catch语句捕获异常 30517.3.4 异步程序中的异常处理 30617.4 要点回顾 3074篇 项目实战第18章 在线五子棋游戏 310视频讲解:33分钟18.1 需求分析 31018.2 游戏设计 31118.2.1 游戏功能结构 31118.2.2 游戏业务流程 31118.2.3 游戏预览 31218.3 游戏开发准备 31318.3.1 游戏开发环境 31318.3.2 游戏项目构成 31418.4 登录游戏房间设计 31418.4.1 登录游戏房间概述 31418.4.2 登录游戏房间的实现 31518.5 游戏玩家列表设计 31718.5.1 游戏玩家列表概述 31718.5.2 游戏玩家列表的实现 31718.6 游戏对战设计 31818.6.1 游戏对战概述 31818.6.2 游戏对战页面初始化 31918.6.3 绘制棋盘 32218.6.4 游戏算法及胜负判定 32418.6.5 重新开始游戏 32518.6.6 更改棋盘颜色 32618.7 要点回顾 327附录A JavaScript基础 328A.1 Node.js与JavaScript 328A.2 JavaScript在HTML中的使用 328A.2.1 在页面中直接嵌入JavaScript代码 328A.2.2 链接外部JavaScript文件 330A.2.3 作为标签的属性值使用 331A.3 JavaScript基本语法规则 331A.4 JavaScript数据类型 333A.4.1 数值型 333A.4.2 字符串型 336A.4.3 布尔值和特殊数据类型 338A.5 JavaScript流程控制 339A.5.1 条件判断语句 339A.5.2 循环控制语句 342A.6 JavaScript函数 345A.6.1 函数的定义 345A.6.2 函数的调用 346A.7 DOM 348A.7.1 DOM概述 348A.7.2 DOM对象节点属性 349A.7.3 DOM对象的应用 349A.8 Document对象 350A.8.1 Document对象介绍 350A.8.2 Document对象的常用属性 350A.8.3 Document对象的常用方法 351A.8.4 设置文档背景色和前景色 351A.8.5 设置动态标题栏 352A.8.6 在文档中输出数据 352A.8.7 获取文本框并修改其内容 353A.9 Window对象 354A.9.1 Window对象的属性 354A.9.2 Window对象的方法 355A.9.3 Window对象的使用 355

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/603536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

09-生成器模式(Builder)模式

意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 理解 如果构建一个对象的的过程会比较复杂,或者说在写代码的过程中,需要比较频繁地构建某个对象,那么可以针对这个对象写一个专门用于构建这…

2024前端炫酷源码分享(附效果图及在线演示)

分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 GSAP-火箭动画特效 GSAP 火箭动画 当氮气充足的情况下 火箭会冲出 并继续飞行 图片…

C#,字符串匹配算法(模式搜索)Z算法的源代码与数据可视化

Z算法也是模式搜索(Pattern Search Algorithm)的常用算法。 本文代码的运算效果: 一、Z 算法 线性时间模式搜索算法的Z算法,在线性时间内查找文本中模式的所有出现。 假设文本长度为 n,模式长度为 m,那么…

【Spring Cloud 】进阶之Config配置中心

目录 config大致的一个思路: 二,前期准备 2.1导入依赖 2.2编写bootstrop.yml: 三,编写Controller类 3.1获取单个配置类信息 3.2获取多个配置类信息 🎉🎉欢迎来到我的CSDN主页!&#x1f3…

Linux习题6

解析:排序必须得是rwx,所以B不对 解析: /etc/resolv.conf:是DNS配置文件。在网卡配置文件中进行配置,默认情况下,网卡配置文件DNS优于/etc/resolv.conf。 /etc/hostname:在centos7,配置主机名…

Linux时间同步和时间设置

时间分为: 1、hwclock:用于查看硬件时间 hwclock -r(--show:读取硬件时钟并打印结果) :查看硬件时间 hwclock -s :系统时间向硬件时间同步 hwclock -w :硬件时间向系统时间同步 …

我的第一个前端项目,vue项目从零开始创建和运行

​入门前端,从基础做起,从零开始新建项目 背景:VUE脚手架项目是一个“单页面”应用,即整个项目中只有1个网页! 在VUE脚手架项目中,主要是设计各个“视图组件”,它们都是整个网页中某个部分&…

TypeScript 从入门到进阶之基础篇(六) 类型(断言 、推论、别名)| 联合类型 | 交叉类型

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…

自用PHP在线Access转html表格小功能(快速预览access)

自用PHP在线Access转html表格小功能(支持大文件上传,得到一表一文件) 本工具用于Access数据表转html下载供预览,特别适合各类程序员。 开发环境(可能只支持)Windows IIS PHP5.4 其他系统或新版本都不支持 <?php /* //自用PHP在线Access转html表格小功能(支持大文件上传,得…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(十)——Cibersort——完结

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

关于目标检测中按照比例将数据集随机划分成训练集和测试集

1. 前言 在做目标检测任务的时候&#xff0c;不少网上的数据&#xff0c;没有划分数据集&#xff0c;只是将数据和标签放在不同的文件夹下&#xff0c;没有划分数据集 虽然代码简单&#xff0c;每次重新编写还是颇为麻烦&#xff0c;这里记录一下 如下&#xff0c;有的数据集…

常见的缓存淘汰算法

FIFO、LRU、LFU 和 WindowTinyLFU 是常见的缓存淘汰算法&#xff0c;用于决定在缓存容量不足时应该如何选择要淘汰的数据。 常见的缓存淘汰算法包括&#xff1a; FIFO&#xff08;先进先出&#xff09;算法&#xff1a;按照数据最早进入缓存的顺序进行淘汰。即&#xff0c;最先…

HNU-数据库系统-实验3-数据库设计

数据库系统 课程实验3数据库设计 计科210X 甘晴void 202108010XXX 目录 文章目录 数据库系统 课程实验3<br>数据库设计实验目的实验内容实验重难点实验环境实验过程&#xff08;0&#xff09;数据库需求描述&#xff08;1&#xff09;数据库概念结构设计E-R图实体图书馆…

openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位

文章目录 openGauss学习笔记-188 openGauss 数据库运维-常见故障定位案例-core问题定位188.1 磁盘满故障引起的core问题188.1.1 问题现象188.1.2 原因分析188.1.3 处理办法 188.2 GUC参数log_directory设置不正确引起的core问题188.2.1 问题现象188.2.2 原因分析188.2.3 处理办…

利用ChatGLM3构建Prompt实现Text2SQL

之前使用ChatGLM3的自定义工具实现了查询MySQL数据库&#xff0c;但感觉功能还是比较受限。 https://blog.csdn.net/weixin_44455388/article/details/135270879?spm1001.2014.3001.5501 使用ChatGLM3实现Text2SQL 前言Text2SQL的构建第一阶段&#xff1a;SQL脚本构建&#xf…

软件工程_复习

软件工程 软件危机(1968 60年代) 产生软件危机的原因: 一方面与软件本身的特点有关,另一方面也和软件开发和维护的方法不正确有关。 与软件本身特点有关: 1.软件不同于硬件,软件是计算机系统中的逻辑部件,缺乏“可见性”,管理和控制软件开发过程相当困难 2.软件在运行过…

Python笔记06-文件操作

文章目录 文件的编码文件读取文件写入文件追加 文件的编码 编码技术即&#xff1a;翻译的规则&#xff0c;记录了如何将内容翻译成二进制&#xff0c;以及如何将二进制翻译回可识别内容。算机中有许多可用编码&#xff1a;UTF-8、GBK、Big5等 不同的编码&#xff0c;将内容翻译…

typescript递归处理

typescript是一种类型强约束的语言&#xff0c;一般来讲定义类型时都要明确指定类型的数据结构。而如果数据结构中涉及到不知道基层嵌套的递归时&#xff0c;就会有一些麻烦。 在 https://stackoverflow.com/questions/51657815/recursive-array-type-typescript 有一个回答…

Java Swing手搓坦克大战遇到的问题和思考

1.游戏中的坐标系颇为复杂 像素坐标系还有行列坐标&#xff0c;都要使用&#xff0c;这之间的互相转化使用也要注意 2.游戏中坦克拐弯的处理&#xff0c;非常重要 由于坦克中心点是要严格对齐到一条网格线&#xff0c;并沿着这条线前进的&#xff0c;如果拐弯不做处理&#…

柠檬Lemon测评机的配置和测试方法

柠檬Lemon测评机的配置和测试方法 只需3步,即可配置好柠檬 第一步:选择g++,点击下一步 第二步:找到g++的目录,添加编译器,点击下一步 第三步:检查结果,点击完成。(此时,配置完成) 只需3步,即可用柠檬做考试测试 第一步:新建比赛