如何在 Node.js 中使用 ES6 导入?


自从 ES6 以来,JavaScript 在项目中使用 import 语句来包含模块方面有了标准化的方式。最初 Node.js 使用 require() 来导入模块,但随着更新,它也引入了 ES6 import。本文将解释如何在 Node.js 中使用 ES6 import,为什么它很重要,以及什么是良好的实践。

为什么在 Node.js 中使用 ES6 导入?

以下是一些您应该在 Node.js 中使用 ES6 导入的关键原因:

  • 现代语法:import 比 require() 导入模块更好,因为它更简洁高效。
  • 摇树优化:ES6 模块可以选择支持摇树优化,在构建过程中删除所有未使用的代码。
  • 一致性:在 ES6 的浏览器语法方面,使用 import 使您的脚本在整个代码中保持一致。

如何在 Node.js 中实现 ES6 导入?

我们在这里列出了在 Node.js 中实现 ES6 导入的重要步骤:

步骤 1:Node.js 支持 ES6 模块

从 Node.js v 12 开始,使用 .mjs 扩展名或在 package.json 文件中使用 type: module 可以原生支持 ES6 模块。
检查您的 Node.js 版本

node --version

步骤 2:配置您的项目以使用 ES6 模块

选项 1:使用 .mjs 文件扩展名

要指定 ES6 模块,请将您的文件名设置为 .mjs 扩展名。

选项 2:在创建捆绑包时,在 package.json 中添加 “type”: “module”

更新您的 package.json 以包含

{
  "type": "module"
}

步骤 3:使用 import 语法

这是一个使用 import 包含模块的示例

// Import a named export
import { readFile } from 'fs/promises';

// Import the default export
import express from 'express';

const app = express();
console.log('Server is running...');

4. 处理 CommonJS 兼容性

如果您正在使用旧版本的 CommonJS 模块,请使用 createRequire 函数包含它们

import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const lodash = require('lodash');

5. 运行脚本

使用 Node.js 运行您的脚本

node index.mjs

在 Node.js 中使用 ES6 导入的最佳实践

我们列出了一些关于在 Node.js 中使用 ES6 导入的最佳实践建议。

  • 避免混合使用导入和 require:尽可能坚持使用一种模块系统风格,以便用户更容易在它们之间切换。
  • 使用绝对导入:配置模块路径以获得更简洁的代码。
  • 利用摇树优化:仅导入您需要的部分。
  • 升级旧版代码:逐步用 import 语句替换 require()。

常见错误及解决方案

以下是常见错误及其解决方案:

1. SyntaxError: Cannot use import statement outside a module

确保您的文件是 .mjs 或在 package.json 中将 type 设置为 "module"。

2. Cannot Find Module

使用相对或绝对路径导入。

3. 混合 ESM 和 CommonJS 问题

使用 createRequire 实现兼容性。

结论

Node 程序应采用 ES6 样式的导入以符合 JavaScript 的现代标准。它提高了代码的可读性、性能以及可维护性。阅读本指南中的说明并在您的 Node.js 应用程序中采用推荐的实践,立即开始使用 ES6 导入。

更新于: 2024年11月12日

25 次查看

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告