小能豆

(node:9374) Warning: To load an ES module, set "type": "module"

javascript

我今天才开始学习 React。如何消除 Visual Studio 终端控制台上的错误消息。

(node: 9374)Warning: To load an ES module,
 set "type": "module" in the package.json or use the .mjs extension. 
/Users/nishihaider/workspace-ui/react-todo-app/src/App.js:1
import React from "react";
import "./App.css";

function App() {
  <>
  return (
  <h1>ToDo</h1>
  );
  </>
}

export default App;

阅读 36

收藏
2024-06-10

共1个答案

小能豆

您遇到的错误消息是由于 Node.js 需要 ES 模块,但 Node.js 环境的默认设置是 CommonJS 模块。您可以通过将项目设置为使用 ES 模块或确保 JavaScript 文件遵循 CommonJS 语法来解决此错误。

修复方法如下:

1. 设置你的项目以使用 ES 模块

"type": "module"您可以通过在文件中添加内容来配置您的项目以使用 ES 模块package.json

  1. 打开您的package.json文件。
  2. "type": "module"在顶层添加。
{
  "name": "react-todo-app",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "dependencies": {
    "react": "^17.0.2",
    "react-dom": "^17.0.2",
    "react-scripts": "4.0.3"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

2. 修正 JSX 语法

App.js此外,您的组件代码中存在一些问题。该return语句不应位于片段内,并且片段语法不正确。以下是更正后的版本:

// src/App.js
import React from "react";
import "./App.css";

function App() {
  return (
    <>
      <h1>ToDo</h1>
    </>
  );
}

export default App;

变更摘要

  • 添加"type": "module"package.json这告诉 Node.js 将所有.js文件视为 ES 模块。
  • 修复App.js组件:
  • 删除了语句周围的不正确片段return
  • 将声明的内容包装return在有效片段中。

进行这些更改后,您的项目将不再显示警告消息,并且组件App.js应该可以正确呈现。

2024-06-10