nodejs import 报错

2025-04-02 0 6

nodejs import 报错

当在使用 Node.js 时,如果遇到 import 报错,通常是因为 Node.js 默认支持的是 CommonJS 模块系统,而 import 是 ES Module 的语法。要解决这个问题,最直接的方式是确保文件以 .mjs 结尾,或者在 package.json 文件中设置 "type": "module"

下面将几种解决方法,并提供示例代码。

1. 确保文件类型正确

Node.js 支持两种模块格式:CommonJS 和 ES Module。默认情况下,.js 文件会被当作 CommonJS 模块处理。如果你希望使用 ES Module 的 import 语法,可以将文件后缀改为 .mjs,或者在项目根目录的 package.json 文件中添加如下字段:

json
{
"type": "module"
}

这样,所有的 .js 文件都会被当作 ES Module 处理。

2. 示例代码

假设我们有一个简单的模块 utils.js,其中包含一个函数 greet,我们可以通过以下方式正确导入它。

方法一:使用 .mjs 文件

将文件命名为 utils.mjs,内容如下:

javascript
// utils.mjs
export function greet(name) {
return `Hello, ${name}!`;
}

然后在另一个文件中使用 import

javascript
// app.mjs
import { greet } from './utils.mjs';</p>

<p>console.log(greet('World'));

方法二:修改 package.json

保持文件名为 utils.js,但在 package.json 中添加 "type": "module"

json
{
"type": "module"
}

然后编写相同的代码:

``javascript
// utils.js
export function greet(name) {
return
Hello, ${name}!`;
}

// app.js
import { greet } from './utils.js';

console.log(greet('World'));
```

3. 其他注意事项

  • 路径问题:在使用 import 时,相对路径必须以 ./../ 开头,否则会报错。
  • 动态导入:如果需要动态加载模块,可以使用 import() 函数,它返回一个 Promise:
javascript
// 动态导入
async function loadModule() {
  const module = await import('./utils.js');
  console.log(module.greet('Dynamic World'));
}</p>

<p>loadModule();

通过以上方法,你可以有效解决 Node.js 中 import 报错的问题。选择适合你项目需求的方法进行配置即可。

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关

源码下载