导入和导出方法在js文件中不起作用[重复]
Posted
技术标签:
【中文标题】导入和导出方法在js文件中不起作用[重复]【英文标题】:The import and export method doesn't work in js file [duplicate] 【发布时间】:2021-10-30 01:44:12 【问题描述】:我想在我的 js 文件中导入一个函数。这是一个简单的代码:
// In index.js file
function addition(a, b)
return a + b;
export addition ;
// In test.js file
import addition from "./index.js";
console.log(addition(5, 4));
控制台中的结果:
谢谢!
【问题讨论】:
错误信息直接告诉你解决这个问题的两种不同方法!! 这能回答你的问题吗? javascript export / import doesn't work 是的@Phoenix1355! 【参考方案1】:NodeJS 使用 CommonJS Module 语法,它不支持 import/export
,但需要像这样使用 module.exports
:
// In index.js file
function addition(a, b)
return a + b;
module.exports = addition;
// In test.js file
const addition = require("./index.js");
console.log(addition(5, 4));
【讨论】:
"NodeJS 使用 CommonJS 模块语法" — 仅在默认情况下。它支持 ES6 模块,错误消息解释了如何使用它们。 它的工作。谢谢! @Quentin,确实如此,但似乎他直接在 javascript 文件上运行 Node,因此,我假设他根本没有使用带有 package.json 的 NPM 项目,这是错误中建议的解决方案起作用所必需的。 我会将您的问题标记为更好的问题。 @Phoenix1355 — 问题中没有任何证据表明存在package.json
文件。错误中的两个解决方案中的 一个 需要它才能工作。如果它尚不存在,则可以创建它。【参考方案2】:
要在 NodeJS 中使用现代导入/导出语法,您必须在 package.json 文件中将包类型设置为 module
,就像在控制台输出中告知的那样。
https://nodejs.org/api/esm.html#esm_differences_between_es_modules_and_commonjs
【讨论】:
以上是关于导入和导出方法在js文件中不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章