你将用 package.json、ES 模块、npm 依赖和脚本来组织一个 Node 项目。
在 Kodokon 中打开本课一个真正的项目装不进单个文件:你会把它拆分成模块,也就是一些文件,它们导出(export)自己所提供的东西,并导入(import)自己所需要的东西。你在 JavaScript 课程里已经认识了 import / export 语法;让我们来看看 Node 是如何启用它的。这一切都始于 package.json,也就是你项目的身份证:一个 JSON 格式的文件,描述项目的名字、版本和设置。要创建它,请进入一个空文件夹并运行 npm init -y(-y 选项会接受所有的默认答案)。然后加上这一行 "type": "module":它告诉 Node 你的 .js 文件使用 ES 模块。
{
"name": "my-project",
"version": "1.0.0",
"type": "module",
"scripts": {
"start": "node main.js",
"dev": "node --watch main.js"
}
}让我们在这个文件夹里创建两个文件:math.js 导出一个函数,main.js 导入它。一个 Node 特有的细节:导入一个本地文件时,必须以 ./ 开头,并以 .js 扩展名结尾。这两点都是必需的,这和某些网页工具所容许的做法不同。
// math.js
export function add(a, b) {
return a + b;
}
// main.js
import { add } from "./math.js";
console.log(add(2, 3));npm 的巨大优势在于它那个全球性的包(package)库:由他人编写、可以直接使用的代码。npm install 命令会把一个包下载到你项目的 node_modules 文件夹里,并把它添加到 package.json 的 dependencies(依赖)部分:也就是你的项目正常运行所需要的包的清单。一个自动创建的 package-lock.json 文件会记录所安装的确切版本,这样每个人拿到的东西都是一样的。让我们用 chalk 来试一试,这是一个能给终端里显示的文本上色的包。
npm install chalk最后一根支柱:npm 脚本,也就是声明在 package.json 的 scripts 部分里的命令快捷方式。npm run dev 会运行以 dev 这个名字保存的命令,无论真正的命令有多长。我们的 dev 脚本使用了 node --watch,这个选项会在每次文件发生变化时自动重启程序:在开发过程中非常舒服。
npm run start
npm run dev