nodejs手动创建一个新的工程

npm init 的作用

  1. 初始化一个新的Node.js项目;
  2. 创建一个package.json文件;

在执行npm init命令时,系统会向用户提供一系列问题,用于收集项目的基本信息,并生成一个初始的package.json文件。开发者也可以使用npm init -y命令来快速生成一个默认配置的package.json文件。

npm_init

package.json的作用

在package.json文件中包含了项目的元数据和依赖信息。元数据包括项目的名称、版本、描述等信息,而依赖信息则指定了项目所依赖的外部包和其版本范围。

通过在package.json文件中定义这些信息,可以方便地管理项目的依赖关系和版本控制。

package_json

在项目中,通常会使用第三方的模块,这里以ESLint为例,演示如何安装第三方模块。在安装完成后,在package.json文件中会自动添加eslint相关的依赖项(当然,这个过程也可以反过来,在你知道有哪些依赖的前提下)。

具体步骤如下:

npm init @eslint/config

在安装ESLint的过程中,会提示选择一些配置,逐一选择完 ESLint 的使用配置后,会在项目根目录生成 .eslintrc.xxx 配置文件,配置文件的格式支持多种,可自由选择。我这里选择了json格式。一般选择js格式。

在这里插入图片描述

在安装了ESLint依赖后,package.json文件中就多了刚才安装的eslint相关的依赖项。
package_dep

当未来项目发布或部署到新的环境时,就会根据package.json文件中的依赖项来自动配置。

接下来我们就可以使用 ESLint 来检查和修复代码了。首先在 demo 项目中,新建 src 目录,并新建app.js 文件。

因为eslint安装在项目目录下,所以直接执行eslint src/**,会报找不到命令。

一种解决方式是找到eslint的绝对路径,然后执行;例如:

/Users/frank/workspace/nodejs/eslint_workspace/node_modules/eslint/bin/eslint.js src/**

eslint_npm_run

此时,eslint也能检测出代码的问题。显然,这种方式不太方便。

另一种更加方便的方式是使用npm run。

npm run

当运行 “npm run” 命令时,它会在 package.json 文件的 “scripts” 部分中查找指定的脚本名称,然后执行相应的命令或一系列命令。这在自动化重复性任务方面非常有用,比如运行测试、构建项目或启动开发服务器。

package.json 文件中的 “scripts” 部分是 npm的一个强大功能。它允许开发者定义自定义命令和脚本,可以使用 “npm run” 命令来执行。这些脚本可以用于各种目的,比如运行构建过程、启动应用程序、运行测试或开发工作流程中所需的其他自定义任务。

要在 package.json 文件中定义一个脚本,只需向 “scripts” 对象添加一个键值对,其中键是脚本的名称,值是要执行的命令或一系列命令。例如:

"scripts": {
	"test": "echo \"Error: no test specified\" && exit 1",
	"eslint": "eslint src/**"
}

在这个例子中,我们定义了2个脚本:“eslint"和"test”。当我们运行 “npm run eslint” 时,它会执行 “eslint src/**” 命令。类似地,“npm run test” 将运行 “test” 命令。

使用 “npm run” 命令提供了一种方便和标准化的方式来运行脚本和自动化任务,在 Node.js 或 JavaScript 项目中非常有用。它有助于简化开发工作流程,通过消除 记忆和输入长而复杂的命令字符串的需求,提高生产力,每当需要执行特定任务时,只需运行相应的 “npm run” 命令即可。

在这里插入图片描述

eslint检测出了四种问题,prefer-const、semi、no-unused-vars、no-undef。接下来,我们看看eslint能否自动修复这些问题。

在这里插入图片描述

可以看出,eslint已经自动帮我们修复了大部分问题。

在这里插入图片描述

### 如何使用 Node.js 初始化和构建工程项目 #### 初始化项目 初始化一个 Node.js 工程通常从创建 `package.json` 文件开始,该文件用于描述项目的元信息以及依赖项。可以通过以下方式快速生成: 运行以下命令来初始化一个新的 Node.js 项目: ```bash npm init -y ``` 这会自动生成一个默认的 `package.json` 文件[^4]。 如果需要手动调整配置,则可以在运行 `npm init` 后按照提示逐步填写项目名称、版本号、入口文件等内容。最终生成的 `package.json` 文件可能类似于下面的内容: ```json { "name": "my-first-node-app", "version": "1.0.0", "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": {} } ``` #### 安装依赖 在完成初始化之后,可以根据需求安装所需的第三方库或工具。例如,要安装 Express 框架作为 Web 应用的基础,可以运行以下命令: ```bash npm install express --save ``` 此操作会在当前目录下的 `node_modules` 中下载并保存所需模块,并自动更新 `package.json` 的 `dependencies` 字段[^2]。 对于开发阶段使用的工具(如测试框架),则应将其标记为开发依赖: ```bash npm install jest --save-dev ``` #### 设置脚本 为了简化日常任务处理,在 `package.json` 的 `scripts` 节点下定义常用指令是一种良好的实践。比如启动服务、运行单元测试等都可以在此处声明。例如: ```json "scripts": { "start": "node app.js", "test": "jest" }, ``` 这样就可以通过简单的命令调用复杂流程: ```bash npm start npm test ``` #### 使用模块化编程 Node.js 支持 CommonJS 模块规范,默认情况下每个 `.js` 文件都被视为单独的一个模块。利用 `require()` 函数引入其他模块的功能;而导出部分则借助于 `module.exports` 或者 `exports` 对象实现[^3]。 示例代码展示如何在一个名为 `utils.js` 的辅助函数集中暴露多个方法供主程序调用: ```javascript // utils.js function add(a, b) { return a + b; } function subtract(a, b) { return a - b; } module.exports = {add, subtract}; ``` 随后在另一个地方加载它: ```javascript const mathUtils = require('./utils'); console.log(mathUtils.add(5, 3)); // 输出:8 console.log(mathUtils.subtract(5, 3)); // 输出:2 ``` #### 处理文件系统 内置的 `fs` 模块允许开发者轻松地与本地磁盘上的资源打交道,无论是同步还是异步模式均被支持。 以下是两个基本例子分别演示了怎样向指定路径写入新内容以及获取现有文档的数据流: ```javascript // 写入文件 const fs = require('fs'); fs.writeFile('/path/to/file', 'data to write', (err) => { if (err) throw err; }); // 读取文件 fs.readFile('/path/to/file', 'utf8', function(err, data){ console.log(data); }); ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sif_666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值