运行nodejs文件
运行 Node.js 程序的通常方法是运行全局可用的 node 命令(安装 Node.js 后)并传递要执行的文件的名称。
node xxx.js
自动重新启动应用(热更新)
从 Node.js V16 开始,有一个内置选项可以在文件更改时自动重新启动应用。这对于开发目的很有用。要使用此功能,你需要将 --watch 标志传递给 Node.js。再也不用使用nodemon了
node --watch app.js
这样每次app.js发生改变时候就不需要重新执行node xxx.js这样的命令了
配置npm脚本
先初始化一个package.json这里不讲解了
这样就可以使用 npm run dev 启动一个监听app.js 的node脚本了
node --run 命令
node --run 可以执行 npm script命令
比如上面的 npm run dev 等同于 node --run dev
使用环境文件
使用 --env-file=xxx 来指定当前执行哪一个env环境文件
注意 这里的 app.js 必须放在后面否则环境文件不会被读取 注意 如果在环境和文件中定义了相同的变量,则环境中的值优先。
node --env-file=self.env app.js
问答命令
Node.js 从版本 7 开始提供 readline 模块 来执行此操作:从可读流(例如 process.stdin 流)获取输入,在 Node.js 程序执行期间,它是终端输入,一次一行。
const readline = require('node:readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
rl.question(`What's your name?`, name => {
console.log(`Hi ${name}!`);
rl.close();
});
node 脚本传参
// script.js
// 获取自定义参数
const customArgs = process.argv.slice(2);
// 打印自定义参数
console.log('自定义参数:', customArgs);
// 遍历自定义参数
customArgs.forEach((arg, index) => {
console.log(`第 ${index + 1} 个参数: ${arg}`);
});
REPL
Node.js REPL(Read-Eval-Print Loop)是一个交互式的 Node.js 环境,可以方便地执行 JavaScript 代码并查看结果。REPL 提供了一个类似命令行的界面,用户可以输入代码并立即看到执行结果。
启动REPL
要启动 Node.js REPL,只需在终端中输入 node 命令即可。如果一切正常,你将看到一个 > 符号,表示 REPL 已经启动成功。
node
使用REPL
在 REPL 中,你可以输入任意的 JavaScript 代码,并按下回车键执行。例如,你可以输入简单的数学运算:
> 1 + 2
结果 3
特殊命令
除了执行 JavaScript 代码外,REPL 还提供了一些特殊命令,以方便你在 REPL 中进行操作。以下是一些常用的特殊命令:
.help:查看帮助信息.break:退出多行输入.clear:清空 REPL 界面.exit:退出 REPL
多行输入
有时候,你可能需要输入多行代码,可以使用 . 命令来指示 REPL 你还要输入更多的内容。例如,你可以输入一个简单的循环:
> for (let i = 0; i < 5; i++) {
. console.log(i)
. }
0
1
2
3
4
结束 REPL
当你完成所有操作后,可以使用 .exit 命令退出 REPL 环境。
> .exit
可执行脚本
在 Node.js 中,可执行脚本是指可以像普通命令行工具一样直接在终端中运行的 JavaScript 文件。
步骤 1:创建 JavaScript 文件
首先,你需要创建一个 JavaScript 文件,例如 hello.js,并编写相应的代码。以下是一个简单的示例:
#!/usr/bin/env node
// 上面这行是 Shebang 行,指定使用 Node.js 来执行此脚本
console.log('Hello, World!');
- Shebang 行:
#!/usr/bin/env node这一行代码非常关键,它被称为 Shebang 或 Hashbang。在类 Unix 系统(如 Linux 和 macOS)中,Shebang 行用于指定执行该脚本的解释器。这里指定使用node来执行此 JavaScript 文件。
步骤 2:赋予文件可执行权限(仅适用于类 Unix 系统)
在类 Unix 系统中,需要为脚本文件赋予可执行权限,才能直接在终端中运行它。可以使用 chmod 命令来实现:
chmod +x hello.js
上述命令将 hello.js 文件添加了可执行权限。
步骤 3:运行脚本
类 Unix 系统(Linux、macOS)
在类 Unix 系统中,由于已经赋予了文件可执行权限,你可以直接在终端中运行脚本:
./hello.js
运行上述命令后,终端将输出 Hello, World!。
Windows 系统
在 Windows 系统中,不需要赋予文件可执行权限。可以直接使用 node 命令来运行脚本:
node hello.js
同样,终端会输出 Hello, World!。
将脚本添加到系统路径(可选)
为了能够在系统的任何位置都能运行你的脚本,你可以将脚本所在的目录添加到系统的 PATH 环境变量中,或者将脚本软链接到系统的 bin 目录下。
例如,在类 Unix 系统中,可以使用以下命令创建软链接:
sudo ln -s /path/to/your/script/hello.js /usr/local/bin/hello
之后,你就可以在任何位置直接使用 hello 命令来运行脚本了。
node脚手架
Node 脚手架和可执行脚本密切相关,可执行脚本是构建 Node 脚手架的重要基础,下面为你详细分析它们之间的联系:
从概念上理解关联
- 可执行脚本:是一段可以直接在命令行环境中运行的代码,在 Node.js 里通常是带有
#!/usr/bin/env node开头的 JavaScript 文件,能像普通命令一样在终端执行,实现特定功能,比如简单的文件操作、输出信息等。 - Node 脚手架:本质上是一个工具,用于快速搭建项目的基础结构。它可以根据预设模板生成项目目录、文件,自动配置依赖等。其核心功能的实现依赖于一系列的可执行脚本。
具体关联体现
实现原理层面
Node 脚手架需要在命令行中被调用并执行相应的操作,这就依赖可执行脚本来实现。以常见的 vue-cli 为例,当你在命令行输入 vue create my-project 时,实际上是调用了 vue-cli 这个脚手架对应的可执行脚本。这个脚本会接收命令行参数(如 create 命令和项目名 my-project),然后根据内置逻辑完成项目的创建工作,包括创建目录、初始化 package.json、安装依赖等。
代码结构层面
- 入口脚本:每个 Node 脚手架都有一个入口的可执行脚本,通常会在
package.json中通过bin字段指定。例如:
{
"name": "my-scaffold",
"version": "1.0.0",
"bin": {
"my-scaffold": "./bin/my-scaffold.js"
}
}
这里 ./bin/my-scaffold.js 就是入口可执行脚本,当用户全局安装这个脚手架包后,在命令行输入 my-scaffold 就会执行这个脚本。
- 内部脚本逻辑:入口脚本往往会调用其他辅助脚本完成具体任务,这些辅助脚本也可以看作是可执行脚本的一部分。比如在创建项目时,可能会有一个脚本专门负责从模板仓库下载模板文件,另一个脚本负责根据用户输入对模板文件进行替换和修改等。
开发和使用层面
- 开发:开发 Node 脚手架时,开发者需要编写多个可执行脚本来完成不同的功能模块,如命令解析、模板生成、依赖安装等。这些脚本相互协作,共同构成了脚手架的功能体系。
- 使用:用户在使用 Node 脚手架时,通过命令行输入特定命令来触发相应的可执行脚本执行,从而实现项目的快速搭建。整个过程对用户来说是透明的,用户只需要关注命令的使用,而无需关心背后脚本的具体实现。