网站搜索

javascript - SyntaxError: 当从 IntellijIDEA 启动 NodeJS 时,在模块外不能使用 import 语句


我尝试用 React JS 创建 hello world 应用程序。我在 IntelliJ IDEA 中创建了 NodeJS 应用程序。创建一个 helloworld.js 文件,并将这段代码添加到该文件中

import React from 'react';

ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById('root')
);

已将 react-dom 依赖添加到 package.json。执行了 npm install 命令。启动应用程序

{
  "name": "testjsapp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react-dom": "^16.12.0"
  }
}

错误:

"C:\Program Files\nodejs\node.exe" D:\projects\testjsapp\hello\helloworld.js
D:\projects\testjsapp\hello\helloworld.js:2
import React from 'react';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at Module._compile (internal/modules/cjs/loader.js:891:18)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11

Process finished with exit code 1

答案#1

你正在尝试在 Node.js 中执行一个 React 程序,但它是设计用来在 网页浏览器中运行的。Node.js 中没有可供你操作的 DOM。这根本行不通。

由于你正在运行的程序使用 JSX,你需要先将其转译,它在那里才能工作。

返回教程。有关设置本地开发环境的部分提供了一种入门方法,或者你可以查看可以选择的一些工具链。

答案#2

检查你当前的版本

node -v

将你的 Node 版本更新到最新的 13.X

更新 nodejs

然后执行以创建 React 应用

npx create-react-app my-app
cd my-app
npm start

参考 创建 React 应用

并与您现有的应用程序进行交叉检查,如有需要