导入和导出方法在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文件中不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

社交媒体字体真棒图标在反应 js 中不起作用

组件动态导入在 router.js 中不起作用

为啥 React 路由在组件中不起作用?

导出在我的 shell 脚本中不起作用

使用〜(波浪号)导入的 SCSS 文件在 Angular 6 中不起作用

fs.writeFile 在新创建的 vue 项目中不起作用[重复]