redux - 在 node.js 后端导入问题
问题描述
我正在学习一门新语言(Redux),但我遇到了这个问题
Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
这里我添加了 package.json 的内容
...
import express from 'express';
^^^^^^
SyntaxError: Cannot use import statement outside a module
当他问我时,我添加了“type”:“module”,我遇到了这个问题:
(node:6392) ExperimentalWarning: The ESM module loader is experimental.
internal/modules/run_main.js:54
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module
...\sa\backend\data' imported from
...\sa\backend\server.js
at finalizeResolution (internal/modules/esm/resolve.js:259:11)
at moduleResolve (internal/modules/esm/resolve.js:636:10)
at Loader.defaultResolve [as _resolve]
(internal/modules/esm/resolve.js:726:11)
at Loader.resolve (internal/modules/esm/loader.js:97:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:243:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:47:40)
at link (internal/modules/esm/module_job.js:46:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
指定在前端 React 导入正常工作将很有用。
包.json
{
"name": "tryredux",
"version": "1.0.0",
"type": "module",
"description": "\"# tryredux\"",
"main": "index.js",
"dependencies": {
"@babel/cli": "^7.10.5",
"@babel/core": "^7.11.0",
"@babel/node": "^7.10.5",
"@babel/preset-env": "^7.10.4",
"express": "^4.17.1",
"nodemon": "^2.0.4",
"react-router-dom": "^5.2.0"
},
"devDependencies": {
"@babel/cli": "^7.8.4",
"@babel/core": "^7.8.4",
"@babel/node": "^7.8.4",
"@babel/preset-env": "^7.8.4",
"eslint": "^6.8.0",
"eslint-config-airbnb": "^18.1.0",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-jsx-a11y": "^6.2.3",
"eslint-plugin-react-hooks": "^2.5.1",
"nodemon": "^2.0.2"
},
"scripts": {
"start": "nodemon --watch backend --exec babelnode backend/server.js"
},
"author": "",
"license": "ISC"
}
解决方案
这里的答案解释得很简洁:
https://stackoverflow.com/a/45854500/2361500
在节点中,默认是用于模块处理的 commonjs 语法。您可能会考虑切换到 require()
推荐阅读
- java - 无法在 Java 中的日志中获取严重异常 - Eclipse 和 Netbeans 中的输出不同
- mouse-cursor - 是否不再使用“蒙版颜色”类型的光标?
- swift - 在 ForEach/ZStack (SwiftUI) 中将表达式分解为不同的子表达式
- google-colaboratory - 从 colab 本地下载文件的代码
- javascript - 如何过滤只有数字的简单多维数组
- vue.js - 如何使用 axios 和 vuejs 删除登录路由上的授权
- mongodb - 将 MongoDB Atlas 连接到 Galaxy 时 MONGO_URL 的格式
- python - 如何打印枚举列表的内容?
- swift - 如何在导航控制器中从下到上而不是从右到左更改 segue 过渡样式?
- javascript - 在不同的时间段后替换图像