ES模块不能分配module.exports或exports.*,使用ESM导出语法

问题描述 投票:0回答:3
Uncaught Error: ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ./assets/js/jquery/interview.js

当我尝试使用 module.exports 导出函数以及将其导入到另一个文件中时,出现此错误。我尝试使用export default,但是调用原始文件的JS文件找不到任何方法。我也发现了这个话题 https://github.com/babel/babel/issues/12731但我没有 babel.config.json 文件...

这是我的代码:

Interview.prototype = function ($) {
    const collapseLocalStoredElements = function (localStorageId) {
        let collapseItemsIds = localStorage.getItem(localStorageId);
        console.log(collapseItemsIds)
        }
   

    return {
        collapseLocalStoredElements: collapseLocalStoredElements,
    };
}(jQuery);

// export default Interview;
module.exports = Interview;

应用程序.js

//Import
let InterviewImport = require ('./js/jquery/interview');

//Uses
 let Interview = new InterviewImport();
console.log(Interview.collapseLocalStoredElements('collapseItemsIds'));

谢谢!!

javascript ecmascript-6
3个回答
2
投票

尝试使用 ESM 语法。

export default Interview;

应用程序.js

Import Interview from ('./js/jquery/interview');

您的代码中似乎还有太多右括号,我删除了我认为不必要的右括号。该功能似乎也是自动执行的。您可能想删除它。

Interview.prototype = function (localStorageId) {
  let collapseItemsIds = localStorage.getItem(localStorageId);
  console.log(collapseItemsIds);
};

0
投票

不知道为什么它被否决,但 Dotista 的答案对我有用(我无法评论或喜欢他们的答案)。 我正在测试将项目切换到 RSPack 并将 ES6 导入与 CommonJS 导出结合起来似乎是一个问题(这不是我的 webpack 设置的问题)。将所有内容切换到 ES6 版本更容易。


-1
投票

发生在我身上,因为我正在将某些内容作为 ES 模块导入,并在同一文件中以 CommonJS 样式导出所有内容。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.